是否有辦法 override 其他 unit 上面的procedure |
答題得分者是:carstyc
|
shininggod
一般會員 發表:16 回覆:20 積分:17 註冊:2009-05-13 發送簡訊給我 |
//delphi5
像我用一個 datamodule 定義一個 function showmessage(vInStr:string):string; function showmessage(vInStr:string):string; begin Dialogs.ShowMessage(big52gb(vInStr)); end; 這樣我其他有用到ShowMessage全部會指到這個,我就不用一個一個回頭去找來改 現在要在 tquery.open 的時候把資料轉成簡體 現在知道他會指到 DB.pas 的 procedure TDataSet.Open; begin Active := True; end; 是想要改成這樣 procedure TDataSet.Open; begin Active := True; doQueryAfterOpen(self); //讓他有沒有自己的 afteropen 都能跳到我自己的doQueryAfterOpen end; 如果我把db.pas 拷出來加到project裡, 可以改,可是包的時候會跟說其他底層有用到db.pas也要重包,變成每個都要加進來 ...會加個沒完沒了...還會有那種只有 bpl 沒有 *.pas 的 ....Orz 現在試想說,能不能再另外一個 unit 把 TDataSet.Open; override; override掉,這樣就不需要動到其他的底層,包的時候就不用怕東加西加加到睡著 因為有一大堆 tquery,有的已經有定義 afteropen,一個一個去指定要很很很很久, 還有一部分是 在程式裡面 用 myQuery := TQuery.Create(); 也是要一個一個找來改..Orzzzz 編輯記錄
shininggod 重新編輯於 2009-05-13 18:44:47, 註解 無‧
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
|
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
|
shininggod
一般會員 發表:16 回覆:20 積分:17 註冊:2009-05-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |