可能对大家来说,都不愿启口这样的问题,
但我确实有点摸不找头脑。请看下面,很短的源码。
谢先了!unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure ss(tt:TControl;sender:tobject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=0 to ControlCount-1 do
if (sender is Tbutton) then
//问题就出在这儿,怎样解决呢
(sender as TButton).OnClick:=Ss(edit1,sender);
end;procedure TForm1.ss(tt: TControl;sender:tobject);
begin
tt.Width:=tt.Width+10;
end;end.
但我确实有点摸不找头脑。请看下面,很短的源码。
谢先了!unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure ss(tt:TControl;sender:tobject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=0 to ControlCount-1 do
if (sender is Tbutton) then
//问题就出在这儿,怎样解决呢
(sender as TButton).OnClick:=Ss(edit1,sender);
end;procedure TForm1.ss(tt: TControl;sender:tobject);
begin
tt.Width:=tt.Width+10;
end;end.
if (sender is Tbutton) then //你这是要干嘛,遍历button不是这样做的。用 tform.components[i]这种方法试一下。还有:=ss(edit1,sender),好象只要:=ss就行的吧。
var i:integer;
begin
for i:=0 to ControlCount-1 do
if (sender is Tbutton) then
//问题就出在这儿,怎样解决呢
Ss(edit1,sender);
end;
已经解决
var
i:integer;
begin
for i:=0 to ComponentCount-1 do
if Components[i] is TButton then
TButton(Components[i]).OnClick:=Button1Click;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ss(Edit1,Sender);
end;procedure TForm1.ss(tt:TControl;sender:tobject);
begin
tt.Width:=tt.Width+10;
end;
的,在对象的EVENT页,ONCLICK里头选同一个PROCEDURE不就可以了吗?