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

表單繼承後父表單原有程序無法使用??

答題得分者是:huwk
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-10 10:22:10 IP:61.218.xxx.xxx 未訂閱
我寫一個資料處理表單 其中有一組Button(上筆,下筆,新增,修改,刪除,關閉等) 並寫一個程序,內容為更新Button是否可用,RefreshTools()如下: 但在之後繼承後又增加一個Button, 且要把它列入RefreshTools()一起控管 但增加這一程序後當按父表單的Button時,並不會去Call 繼承後表單的RefreshTools() 請教各位前輩要如何故才好?? 另表單可以加入property,Methods,Events,可否教導一下?? uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, ExtCtrls, ImgList, DB, ADODB, Grids, DBGrids, StdCtrls, Mask, DBCtrls,TypInfo, Buttons, jkDBEdit,JKDBMemo, ActnList; type TJkDBForm = class(TForm) StbBottom: TStatusBar; TobTools: TToolBar; TolDBFirst: TToolButton; TolDBPrior: TToolButton; TolDBNext: TToolButton; TolDBLast: TToolButton; TolDBDelete: TToolButton; TolDBEdit: TToolButton; TolDBAdd: TToolButton; ...... procedure RefreshDataMode(); procedure RefreshTools(); //<<程序
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-10 18:49:21 IP:61.222.xxx.xxx 未訂閱
父代的method需定義成為 dynamic or virtual 子代的method需加上override..內部用 inherited叫用父代.. and "另表單可以加入property,Methods,Events,可否教導一下?? " 不太明白您的意思耶..
------
熊的學習 http://huwk.blogspot.com
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-10 23:01:31 IP:61.70.xxx.xxx 未訂閱
引言: 父代的method需定義成為 dynamic or virtual 子代的method需加上override..內部用 inherited叫用父代.. and "另表單可以加入property,Methods,Events,可否教導一下?? " 不太明白您的意思耶..
謝謝 huwk 前輩, >>父代的method需定義成為 dynamic or virtual >>子代的method需加上override..內部用 inherited叫用父代.. 加入後以可以了,真是謝謝,原還以為不行且書上也沒有看到,真是感謝 >>"另表單可以加入property,Methods,Events,可否教導一下?? " >>不太明白您的意思耶.. 不好意思,我寫的不清楚,再說明一下: 我的意思是在Form中如何加入 屬性,方法,事件(property,Method,Event) 且繼承後,子代可以使用,因書上沒有且找不到,所以..... 如自製VCL加入屬性後,可以在object Inspector中設定 不知是否可以,還請前輩賜教!!!
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-11 00:01:14 IP:211.76.xxx.xxx 未訂閱
引言: Delete.. 不好意思,我寫的不清楚,再說明一下: 我的意思是在Form中如何加入 屬性,方法,事件(property,Method,Event) 且繼承後,子代可以使用,因書上沒有且找不到,所以..... 如自製VCL加入屬性後,可以在object Inspector中設定 不知是否可以,還請前輩賜教!!!
寫了一個不是很好的例子..將就著看.
 
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;    type
  TChangeDateEvent = procedure(Sender:Tobject; pDate:Tdatetime) of object;      TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FMyDate: Tdatetime;
    FOnChangeDate: TChangeDateEvent;
    procedure SetMyDate(const Value: Tdatetime);
    procedure SetOnChangeDate(const Value: TChangeDateEvent);
    procedure ChangeDate(sender:Tobject; pdate:Tdatetime);
    { Private declarations }
  public
    { Public declarations }
  protected
    property MyDate:Tdatetime read FMyDate write SetMyDate;
    {事件}
    property OnChangeDate:TChangeDateEvent read FOnChangeDate write SetOnChangeDate;
  end;    var
  Form1: TForm1;    implementation    {$R *.DFM}    { TForm1 }    procedure TForm1.SetMyDate(const Value: Tdatetime);
begin
  if value <> fmydate then
  begin
    FMyDate := Value;        if assigned(FOnChangeDate) then
      FOnChangeDate(self,value);
  end;
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  mydate := now;
end;    procedure TForm1.SetOnChangeDate(const Value: TChangeDateEvent);
begin
  FOnChangeDate := Value;
end;    procedure TForm1.ChangeDate(sender:Tobject; pdate:Tdatetime);
begin
  self.Caption := formatdatetime('YYYY/MM/DD HH:MM:SS', pdate);
end;    procedure TForm1.FormCreate(Sender: TObject);
begin
  OnChangeDate := changedate;
end;    end.
------
熊的學習 http://huwk.blogspot.com
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-12 22:54:38 IP:61.70.xxx.xxx 未訂閱
引言: 寫了一個不是很好的例子..將就著看.
謝謝 huwk 前輩,我試試如有問題再來請教!!
系統時間:2024-06-30 14:10:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!