procedure SetEditColor(Sender:TObject); begin for iCount:= 0 to ComponentCount - 1 do begin if Components[iCount] is TEdit then TEdit(Components[iCount).Color := clYellow; end; end; 把所有EDIT的OnClick事件都连到该过程即可
如果你要把sender当作tedit来用可以使用以下的语句 (Sender as TEdit).Name := 'haha';
偶现在就用的Liusp(夜深千帐灯)的方法啊。
不需要保存最后一次的sender,在OnExit和OnEnter中处理就可以了。
如何使其余的Tedit的背景变为白色呢?
private { Private declarations } procedure EditEnter(Sender: TObject); procedure EditExit(Sender: TObject); public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.EditEnter(Sender: TObject); begin TEdit(Sender).Color := clYellow; end;procedure TForm1.EditExit(Sender: TObject); begin TEdit(Sender).Color := clWindow; end;procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin for I := 0 to ComponentCount - 1 do if Components[I] is TEdit then begin TEdit(Components[I]).OnEnter := EditEnter; TEdit(Components[I]).OnExit := EditExit; end; end;
procedure editenter(sender:tobject); begin (sennder as tedit).color:=clYellow; end;procedure editexit(sender:tobject); begin (sender as tedit).color:=clWhite; end;把所有EDIT的ONENTER事件指向 EDITENTER过程 ,ONEXIT事件指向 EDITEXIT过程.
用activecontrol as tedit不就搞定了,记什么sender procedure SetEditColor; begin (activecontrol as tedit).color:=clyellow; end;
我曾经看到过用消息处理的方式来实现,可是就是找不到了。
我的这台破机子没装delphi我也记不清了,不过我觉得应该还是有得。有click事件不是就可以了吗?
begin
for iCount:= 0 to ComponentCount - 1 do
begin
if Components[iCount] is TEdit then
TEdit(Components[iCount).Color := clYellow;
end;
end;
把所有EDIT的OnClick事件都连到该过程即可
(Sender as TEdit).Name := 'haha';
{ Private declarations }
procedure EditEnter(Sender: TObject);
procedure EditExit(Sender: TObject);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.EditEnter(Sender: TObject);
begin
TEdit(Sender).Color := clYellow;
end;procedure TForm1.EditExit(Sender: TObject);
begin
TEdit(Sender).Color := clWindow;
end;procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ComponentCount - 1 do
if Components[I] is TEdit then begin
TEdit(Components[I]).OnEnter := EditEnter;
TEdit(Components[I]).OnExit := EditExit;
end;
end;
begin
(sennder as tedit).color:=clYellow;
end;procedure editexit(sender:tobject);
begin
(sender as tedit).color:=clWhite;
end;把所有EDIT的ONENTER事件指向 EDITENTER过程 ,ONEXIT事件指向 EDITEXIT过程.
procedure SetEditColor;
begin
(activecontrol as tedit).color:=clyellow;
end;