How to assign different procedure to OnClick event |
尚未結案
|
kylixyao
一般會員 發表:10 回覆:11 積分:4 註冊:2003-11-20 發送簡訊給我 |
Procedure proc1;
begin
do something;
end;
procedure proc2;
begin
do something;
end; I want to assign these two different procedure to a button's OnClick event
according some value,such as following pesudo code:
if flag=10 then button1.proc1 else button1.proc2; who can tell me how to write the right code? thanks.
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
You need a TNotifyEvent, not a procedure....
type TMyClass = class class procedure proc1(Sender: TObject); class procedure proc2(Sender: TObject); end; procecedure TMyClass.proc1(Sender:TObject); begin end; procecedure TMyClass.proc2(Sender:TObject); begin end; {.....} if flag=10 then button1.OnClick := TMyClass.proc1 else button1.OnClick := TMyClass.proc2;發表人 - william 於 2004/02/06 15:13:31 |
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
kylixyao
一般會員 發表:10 回覆:11 積分:4 註冊:2003-11-20 發送簡訊給我 |
william,
if I use code like this:
procedure TForm1.button1OnClick(Sender:TObject);
class procedure proc1(Sender: TObject);
begin
...
end;
class procedure proc2(Sender: TObject);
begin
...
end;
begin
form2:=TForm2.create(application);
if flag=10 then form2.button1.proc1 else form2.button1.proc2;
form2.showmodal;
form2.free;
end; can the code compile or run right?
|
kylixyao
一般會員 發表:10 回覆:11 積分:4 註冊:2003-11-20 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private public end; TMyClass = class class procedure proc1(Sender: TObject); class procedure proc2(Sender: TObject); end; var Form1: TForm1; flag: integer; implementation uses Unit2; {$R *.dfm} { TMyClass } class procedure TMyClass.proc1(Sender: TObject); begin end; class procedure TMyClass.proc2(Sender: TObject); begin end; procedure TForm1.Button1Click(Sender: TObject); begin form2 := TForm2.create(self); if flag=10 then form2.button1.OnClick := TMyClass.proc1 else form2.button1.OnClick := TMyClass.proc2; form2.showmodal; form2.free; end; end. |
kylixyao
一般會員 發表:10 回覆:11 積分:4 註冊:2003-11-20 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |