自定义过程 |
答題得分者是:Stallion
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
這視你的需求而定!如果需要知道與引用呼叫者就加上去,如果純粹只是處理特定的作業跟呼叫者無關就不必。
===================引 用 ntjrr 文 章=================== procedure Tform1.getsj begin ..... end; 我自定义了以上的一个过程,在其它代码中调用 getsj,我要问的是一般在procedure 后面总有一个(Sender: TObject),不知道我这个是不是一定要写为procedure Tform1.getsj(Sender: TObject)? |
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
一般在procedure 后面总有一个(Sender: TObject),
指的應該是Event Procedure(參考TNotifyEvent) 不管是procedure 或 function 是否要有參數傳遞完全要看你的需求
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL |
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
这个问题的答案,正如上面两位的回答:一个 procedure 里面的 parameter 是什么,看你的需求而定。
本质上,这是 delphi 的语法的问题。从语法角度来看,任何一个 procedure 或者 function,其参数可以根据你的需要任意定。 至于你看到的那些,例如,双击一个 Button1 以后 delphi 帮你自动产生的框架代码: procedure TForm1.Button1Click(Sender: TObject) 这个是 Button1 的 OnClick 的事件对应的方法。这个方法之所以有 Sender: TObject 这个参数,是因为 TButton 的 OnClick 事件的参数就是如此,绑定事件的方法,必须和事件定义的参数相同。 OnClick 事件的类型是 TNofityEvent,而 TNotifyEvent 这个类型的定义是: TNotifyEvent = procedure(Sender: TObject) of object; //这个你去看 delphi help 里关于 TNotifyEvent 的描述就清楚了。 再深入一步,为什么它要定义 Sender: TObject 这个参数呢? 1. Sender 是参数名称,随便写个什么都可以,写成 Sender 可以,写成 MySender 也可以的。 2. TObject 是所有类的根。从 delphi 的语法来说,所有的类,比如 TButton, TLabel.... 都是从 TObject 继承下来的。就好比男人、女人,都是从“生物”这个类继承下来的。这里采用 TObject 也就是说 Sender 可以是任何一个类别的对象,不限制类别。如果是 TLabel,那么就不能在这里放 TButton 的对象 Button1 了。 回头来看 procedure TForm1.Button1Click(Sender: TObject),这里,Sender 就是 Button1。通过 Sender 你就可以获得用户 Click 了的那个按钮。比如你有3个按钮,用户点了以后,就把被点的那个按钮的 Caption 改写为当前时间,就可以这样写: If Sender is TButton then TButton(Sender).Caption := DateTimeToStr(Now); 这样,不管用户点哪个按钮,都能正确执行。而不用分别写三个方法。 ===================引 用 ntjrr 文 章=================== procedure Tform1.getsj begin ..... end; 我自定义了以上的一个过程,在其它代码中调用 getsj,我要问的是一般在procedure 后面总有一个(Sender: TObject),不知道我这个是不是一定要写为procedure Tform1.getsj(Sender: TObject)? |
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
感谢各位大大的指点,感谢pcplayer99大大的深入解析。
------
我的编程起步于ktop,我将永远支持ktop |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |