可能对大家来说,都不愿启口这样的问题,
  但我确实有点摸不找头脑。请看下面,很短的源码。
  谢先了!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.

解决方案 »

  1.   

    for i:=0 to ControlCount-1 do
        if (sender is Tbutton) then  //你这是要干嘛,遍历button不是这样做的。用 tform.components[i]这种方法试一下。还有:=ss(edit1,sender),好象只要:=ss就行的吧。
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    var i:integer;
    begin
      for i:=0 to ControlCount-1 do
        if (sender is Tbutton) then
        //问题就出在这儿,怎样解决呢
        Ss(edit1,sender);   
    end;
      

  3.   

    http://www.csdn.net/expert/topic/1069/1069332.xml?temp=.6968347
    已经解决
      

  4.   

    procedure TForm1.FormShow(Sender: TObject);
    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;
      

  5.   

    你的button不是自己动态创建
    的,在对象的EVENT页,ONCLICK里头选同一个PROCEDURE不就可以了吗?