procedure TForm1.Myclick(Sender: Tobject); begin showmessage('dgdfsgdfsgdfsg'); end;Button1:=Tbutton.create(selef); Button1.onclick:=Myclick;
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;
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
在form1中调用form2中的botton1:
在form1对应的单元文件中写:
uses uform2
.......
.......
form2.botton1
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;
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;
例如有两个窗体 form1,form2,form2中有控件Edit1//在Form1中 uses Unit2; //此步 可省略 因为Delphi编辑器会自动 uses 所引用的单元的在form1中的代码:
Form2.Edit1.Text:='abcde';
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.
1。首先要引用你要控制的窗体
implementation
uses unit2;//窗体form2的单元名
{$R *.dfm}
2。然后调用
procedure tform1.btnclick(sender:tobject);
begin
form2.edit1.text:='Hello World!';
end;
begin
showmessage('dgdfsgdfsgdfsg');
end;Button1:=Tbutton.create(selef);
Button1.onclick:=Myclick;
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;