菜鸟问个幼稚的问题,当焦点在edit1里时,按button1使edit1的内容为a,当焦点在edit2里时,按button1使edit2的内容为a,我的代码总是

  • 主题发起人 xiaoxiami1
  • 开始时间
X

xiaoxiami1

Unregistered / Unconfirmed
GUEST, unregistred user!
菜鸟问个幼稚的问题,当焦点在edit1里时,按button1使edit1的内容为a,当焦点在edit2里时,按button1使edit2的内容为a,我的代码总是有错误,请您帮忙!我的代码详见内容。(10分)<br />procedure Tdenglu.SpeedButton1Click(Sender: TObject);
begin
if edit1.SetFocus then
begin
edit1.text:='a';
end;
if edit2.SetFocus then
begin
edit2.Text:='a';
end;
end;
 
理解有问题。不管焦点在什么地方,点击按钮的时候焦点都会在按钮上
 
对,同意楼上的
 
对,焦点在点击时在按钮上
 
而且SetFocus好像是个方法,不是属性吧。应该是.Focused。
 
if edit1.SetFocus then 这句有问题,还是应该有个变量保存Edit的状态才行,如
在Edit的onexit事件里给这个变量赋值。
 
楼上几位说的对。
如下参考:
var
Form1: TForm1;
cck:byte;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
case cck of
1: edit1.text:='a';
2: edit2.Text:='a';
end;
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
cck:=1;
end;

procedure TForm1.Edit2Click(Sender: TObject);
begin
cck:=2;
end;
 
不要用TButton 或者TBitbtn,要用TSpeedButton
procedure Tdenglu.SpeedButton1Click(Sender: TObject);
begin
if edit1.Focused then
begin
edit1.text:='a';
end;
if edit2.Focused then
begin
edit2.Text:='a';
end;
end;
 
接受答案了.
 
顶部