过程的问题 |
答題得分者是:borland_delphi70
|
8023
一般會員 發表:2 回覆:0 積分:0 註冊:2007-12-20 發送簡訊給我 |
[code delphi] implementation {$R *.dfm} type my=procedure (x,y:integer); procedure mypr(x,y:integer); begin showmessage(inttostr(x y)); end; procedure TForm1.Button1Click(Sender: TObject); var myp:my; //定义my类变量有什么用处呢,过程的变量有什么用处呢,怎么用,没有明白 begin myp:=mypr; //这里的赋值是把mypr过程里的返回值给myp吗???这里的mypr返回值又是多少呢,我试着把mypr(5,5)删除后,在运行点按钮就没有什么了,真是晕死了,请帮帮忙,谢谢了 mypr(5,5); end; end. [/code] |
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
borland_delphi70
中階會員 發表:8 回覆:50 積分:51 註冊:2002-12-06 發送簡訊給我 |
長官:
您所定義的 my 是一個 procedure 的 Type 所以你所宣告的 myp 就可以接受各種傳入參數為兩個 integer 的 procedure,在OO中可以表現為「多形」,您可以試試下列程式: [code delphi] type my=procedure (x,y:integer); TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } myp: my; public { Public declarations } end; procedure my1(x,y:integer); procedure my2(x,y:integer); procedure my3(x,y:integer); var Form1: TForm1; implementation {$R *.dfm} procedure my1(x,y:integer); begin showmessage(inttostr(x) inttostr(y)); end; procedure my2(x,y:integer); begin showmessage(inttostr(x y)); end; procedure my3(x,y:integer); begin showmessage(inttostr(x-y)); end; procedure TForm1.Button1Click(Sender: TObject); begin myp:=my1; myp(20, 10); end; procedure TForm1.Button2Click(Sender: TObject); begin myp:=my2; myp(20, 10); end; procedure TForm1.Button3Click(Sender: TObject); begin myp:=my3; myp(20, 10); end; [/code]
編輯記錄
borland_delphi70 重新編輯於 2008-01-02 13:20:53, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |