奇怪的f1book回车-->tab(50分)

  • 主题发起人 主题发起人 江西的delphi
  • 开始时间 开始时间

江西的delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟在用f1book作录入时,希望'回车'有tab的效果,(就是同行向右移,
且到最末会移到下一行),但无论如何都做不到,要么浏览时有那种效果,但录入
会斜行,试了别的方法也不行,所以请真正做过f1book回车-->tab有这种效果的高手,
给出一段程序,测试通过后再给银子,以前在form和dbgrid上都可以!
 
这年头,有分没人要?
再不说我就收分了,呵呵!
 
提前一下吧,再不答就结束了,大家忙!
 
最后蹭一脚!
 
不会,听!
 
这个东东恐怕还真难,
不过用easygrid应该可以的.也很好用.
 
在keydown事件中
if Key = VK_Return then begin
Key := VK_Tab;
Exit;
end;
if Key = VK_Tab then begin
Key := VK_Return;
Exit;
end;
就可以了
 
f1book没用过。做过DBGRID的这种效果。不知道能不能用得上。
//设置form1.keypreview为true
procedure TForm1.FormKeyPress(Sender: TObject
var Key: Char);
begin
if Key = #13 then {回车键 }
if not (ActiveControl is TDBGrid) then
begin { if not on a TDBGrid }
Key := #0
{ eat enter key }
Perform(WM_NEXTDLGCTL, 0, 0)
{ move to next control }
end
else
if (ActiveControl is TDBGrid) then { if it is a TDBGrid }
with TDBGrid(ActiveControl) do
if selectedindex < (fieldcount -1) then { increment the field }
selectedindex := selectedindex +1
else begin
DataSource.DataSet.Next;
if DataSource.DataSet.Eof then DataSource.DataSet.Append;
selectedindex := 0;
end;
 
TO:zhai_xin, kingdeezj
不是这样,我dbgrid也是可以的,不信你测一下f1book,不过我不想用f1book了,找不到
使用它的一个好方案。
 
F1book的操作习惯和Excel是一样的,即tab键右移,Enter键下移.
也许你可以在F1Book的Keydown中换一下:
procedure TForm3.F1Book61KeyDown(Sender: TObject
var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
Key := VK_TAB;
end;

不过我觉得还是不要换的好,因为这已经是spreadsheet的标准操作了.
 
TO:bluerain
你好!
你那样写你试过吗(应该不行),不过客户更习惯于enter-->tab。
 
我实验过了,没有问题.包括到最后一个格子,自动换行.
我用的是F1Book v6.1 + Delphi5
 
To:bluerain
当输入数据时,你可以吗?(我不输入数据可以)
 
sorry, 当时没有测输入数据就想当然了.不好意思,下面的代码没有问题了(无论是
输入数据时还是不输入时)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, AxCtrls, OleCtrls, TTF160_TLB;

type
TForm1 = class(TForm)
fb: TF1Book6;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FOldProc : TWndMethod;
procedure MyProc(var message: TMessage);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.MyProc(var message: TMessage);
begin
if (message.WParam = VK_RETURN) then
message.WParam := VK_TAB;
FOldProc(message);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FOldProc := fb.WindowProc;
fb.WindowProc := MyProc;
end;


end.
 
很通用哦,感谢bluerain大侠!
 
后退
顶部