5,928
社区成员




比如说,鼠标点到edit1里面,然后,点击button1时,edit1.text能获取到button1的名称。
然后鼠标移动到edit2里面。点击button2时,edit2,text能获取到button2的名称。这样的程序咋整。一脑袋浆糊
tanqth的回复是正解
unit Unit8;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm8 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Edit1Enter(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
editx:TEdit; //一个记录获得焦点的变量
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject);
begin
editx.Text:= TButton(Sender).Caption; //当点击某个按钮时,给最近为焦点的EDIT赋值为当前按钮的名字
end;
procedure TForm8.Edit1Enter(Sender: TObject);
begin
editx:=TEdit(Sender); //当进入某个Edit时,赋值为当前EDIT
end;
procedure TForm8.FormCreate(Sender: TObject);
begin
editx:=nil; //创建是赋值为空,其实也可以不要
end;
end.
可以:
Edit的OnEnter事件里记录一下是哪个Edit
你这说明。我只能说,当你点了button1时,直接给edit1.text:='button1';
当你点了button2时,直接给edit2.text:='button2';
我不知道你那个什么“鼠标点到edit1里面,然后”那是什么意思。
什么意思?如果焦点在edit1,然后你点了button3,你希望发生什么?