gpt4 book ai didi

delphi - 没有对象检查器的 OnMouseMove delphi

转载 作者:行者123 更新时间:2023-12-01 17:43:50 25 4
gpt4 key购买 nike

我的应用程序有 350 个编辑字段,所有这些字段都应有一个 OnMouseMove 事件。我已经为所有这些生成了以下代码:

...

type

...
procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Edit2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
...

implementation

{$R *.dfm}

...
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit1.SetFocus();
end;

procedure TForm1.Edit2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit2.SetFocus();
end;
...

但是我没有去对象检查器双击OnMouseMove。有没有办法在没有对象检查器的情况下完成这项工作。您是否有可以使其适用于第一个编辑字段的示例代码行?

最佳答案

您可以创建一次并自己在代码中分配它:

type
TForm1=class(TForm)
procedure EditMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure FormCreate(Sender: TObject);
//...
end;

implementation

procedure TForm1.EditMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
CurrEdit: TEdit;
begin
if (Sender is TEdit) then
begin
CurrEdit := TEdit(Sender);
// Do whatever with CurrEdit
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.OnMouseMove := EditMouseMove;
Edit2.OnMouseMove := EditMouseMove;
Edit3.OnMouseMove := EditMouseMove;
end;

如果您想为表单上的每个 TEdit 分配相同的值:

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ControlCount - 1 do
if Controls[i] is TEdit then
TEdit(Controls[i]).OnMouseMove := EditMouseMove;
end;

关于delphi - 没有对象检查器的 OnMouseMove delphi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com