線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:896
推到 Plurk!
推到 Facebook!

about procedure 的產生??

尚未結案
jchuang
一般會員


發表:41
回覆:36
積分:15
註冊:2003-08-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-21 18:13:05 IP:140.123.xxx.xxx 未訂閱
我在看研華的 ADDA Card 的example時,1,2項是元件bottem的procedure,如果是元件的只要點兩下就可以產生 procedure cmdExitClick(Sender: TObject); procedure cmdRunClick(Sender: TObject); 可是第3項不是元件的,請問要如何產生ㄋ? 1 procedure cmdExitClick(Sender: TObject); 2 procedure cmdRunClick(Sender: TObject); 3 procedure ChanChange(Sender: TObject); 新手上路
------
新手上路
stone0924
一般會員


發表:3
回覆:17
積分:14
註冊:2002-08-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-21 18:37:40 IP:211.21.xxx.xxx 未訂閱
Dear jchuang, 我想的不知對或不對 : 3 procedure ChanChange(Sender: TObject); 是 coding 人員自己加上去的. 再於程式中動態指定 ex: button1.onclick :=chanchange; 謝謝!
jchuang
一般會員


發表:41
回覆:36
積分:15
註冊:2003-08-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-21 22:04:29 IP:140.123.xxx.xxx 未訂閱
可是整個程式只有出現在兩個地方,其他地方都沒有了。 在宣告的地方 procedure ChanChange(Sender: TObject); 在程式內 procedure Tfrmstart.ChanChange(Sender: TObject); begin CurrentChannel := (Sender as TEdit).Tag; end; 另外,procedure可以自已加嗎?不是都要有對應到元件嗎?? 新手上路
------
新手上路
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-22 08:32:31 IP:210.65.xxx.xxx 未訂閱
Hi jchuang ,    可以先行寫好 Procedure 再指定 Button 的 OnClick 事件為該 Procedure,所以在點選該事件時,會有一個下拉視窗可供選取,並不一定要 Double Click 來產生該 Procedure !!     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-22 08:41:22 IP:218.15.xxx.xxx 未訂閱
jchuang您好: 关于procedure的定义,有下列几种常用的做法:
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls;    type
  TForm1 = class(TForm)
    DBListBox1: TDBListBox;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject); //双击之后自动生成的procedure
  private
    { Private declarations }

    procedure ChanChange(Sender: TObject);//这是您自己自定义的procedure 
  public
    { Public declarations }
    
   procedure ChanChange(Sender: TObject);//自定义的procedure也可以放在这里      end;    var
  Form1: TForm1;
  CurrentChannel:integer; 定义一个全局变量
implementation    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(inttostr(CurrentChannel));
end;    procedure TForm1.ChanChange(Sender: TObject);
begin
  CurrentChannel :=(Sender as TEdit).Tag;
end;    end.
所以说procedure可以自已手动加,也不一定得对应到元件。 宣告在 private之后(如蓝色部分),只能供本unit调用。宣告在public之后(如红色部分),可供所有的unit调用。具体您可去查找相关资料,或去看看相关的书籍。 如上面的实例,如果您单单看 ChanChange这个procedure,它也只是一个宣告和一个在程序内。但它实际有用,因它已经传值给CurrentChannel,得到Edit的Tag值,可供其他procedure和Function使用,如上面实例,在Button1Click有用到! 供参考看看,希望能对您有所帮助! ~~~静心养德~~~
系統時間:2024-05-17 10:06:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!