1:case语句的具体使用(希望给出具体例子)2:如何在一个窗体内调用另一个窗体中的控件(希望给出具体例子)3:动态生成控件后,如何声明它的方法(如onclick方法)?(希望给出具体例子)

解决方案 »

  1.   

    1:
    Case i of
    101:Begin
       ....
      end;
    201:Begin  end;
    301:Begin end;
    else:Begin end;
    end;2: form1,form2
    form中
    FOrm.Edit1.Text:='abcde';3:首先已经存在此事件 如:TForm1.Button1Click(Sender: TObject);
    Button2.OnClick:=Button1Click
      

  2.   

    2:
       在form1中调用form2中的botton1:
       在form1对应的单元文件中写:
       uses   uform2
       .......
       .......
       form2.botton1
      

  3.   

    1: case no of
                0: result:=1;
                1: result:=0;
            else
                   result:= 100;
            end;           
    2:Form2调用Form1中button1
      form2 的uses 中加入unit1
      调用:form1.button1
    3:procedure RUAddOnClick(Sender: TObject);
      ……
      button1.onclick:=RUAddOnClick;
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, Buttons;type
      TForm1 = class(TForm)
        Button1: TButton;
        Panel1: TPanel;
        Edit1: TEdit;
        BitBtn1: TBitBtn;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      m:integer;
      btn:array of tbutton;
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    n:integer;begin
       if m>0 then
       begin
         for i:=0 to m-1 do
          begin
            btn[i].Free;
          end;
       end;
      

  5.   

    2再详细些: 
    例如有两个窗体 form1,form2,form2中有控件Edit1//在Form1中 uses Unit2; //此步 可省略 因为Delphi编辑器会自动 uses 所引用的单元的在form1中的代码:
    Form2.Edit1.Text:='abcde';
      

  6.   

    动态添加按钮,并排列<已调试>
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Panel1: TPanel;
        procedure Button1Click(Sender: TObject);
        procedure btnclick(sender:tobject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
     var
     i:integer;
     j:integer;
     btn:array of tbutton;
    begin
     setlength(btn,100);
     j:=0;
     for i:=0 to 16 do
     begin
       if (i=(5*j)+5) and (i<>0) then j:=j+1;
       btn[i]:=tbutton.Create(self);
       btn[i].Caption :='button' +inttostr(i);
       btn[i].Width:=50;
       btn[i].Height:=50;
       btn[i].Top:=j*(btn[i].Height+10) ;
       btn[i].Left:= (i-5*j)*btn[i].Width+10;
       btn[i].Parent:=self.Panel1 ;
       btn[i].OnClick:=btnclick;
     end;
    end;
    procedure tform1.btnclick(sender:tobject);
    var
    a:string;
    begin
      a:= tbutton(sender).Caption  ;
      application.MessageBox(pchar(a),'提示!');
    end;end.
      

  7.   


    1。首先要引用你要控制的窗体
    implementation
      uses unit2;//窗体form2的单元名
    {$R *.dfm}
    2。然后调用
    procedure tform1.btnclick(sender:tobject);
    begin
      form2.edit1.text:='Hello World!';
    end;
      

  8.   

    procedure TForm1.Myclick(Sender: Tobject);
    begin
     showmessage('dgdfsgdfsgdfsg');
    end;Button1:=Tbutton.create(selef);
    Button1.onclick:=Myclick;
      

  9.   

    case的用法:使用Case時,條件必須的有序集,如下:
    case i of
    0:k=1;
    1:k:=2;
    2:k:=3;
    end;在form1調用Form2的button1
     form2.button1.caption:='text';
    動態建立button2
    Button2:= Tbutton.create(application);
    button2.parnet:=panel1;
    button2.onclick:=button1.onclick;