動態產生物件解構會產生誤錯的問題 |
尚未結案
|
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
問題D6程式範列:http://delphi.ktop.com.tw/loadfile.php?TOPICID=14170775&CC=316925 請教各位大大:
詳細內容如附檔。
當連續按[建構]的,然後在連續按[關閉]的button
會有錯誤。 我也在這邊post一下程式碼:
type TimagePanel = class(TPanel) private btnClose : TButton; procedure btnCloseClick(Sender : TObject); public constructor Create(AOwner: TComponent); override; end; implementation procedure TimagePanel.btnCloseClick(Sender: TObject); begin self.Free; end; constructor TimagePanel.Create(AOwner: TComponent); begin inherited; btnClose := TButton.Create(Self); btnClose.Parent := Self; btnClose.Caption := '關閉(&C)'; btnClose.OnClick := btnCloseClick; end; {然後在主form,放一個TScrollBox和一個cpation叫[建構]的button } procedure TForm1.Button1Click(Sender: TObject); var tmpPanel : TimagePanel; begin tmpPanel := TimagePanel.Create(Self); tmpPanel.Parent := ScrollBox1; tmpPanel.Align := alTop; end;由於程式功力不夠,實在不知道錯誤在那。 只能猜測在可能是在指定onClick,但不知道從那裡下手, 麻煩各位大大熱心指教一下^^ 感激不禁。 ..-----------βλμε------------.. ◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475 發表人 - a6475 於 2004/02/21 17:10:03
------
月夜 光明 藍更愁 |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
const WM_MYFREE = WM_USER 1; type TimagePanel = class(TPanel) private btnClose : TButton; procedure btnCloseClick(Sender : TObject); procedure WMMyFree(var Msg: TMessage); message WM_MYFREE; public constructor Create(AOwner: TComponent); override; end; procedure TimagePanel.btnCloseClick(Sender: TObject); begin PostMessage(self.Handle,WM_MYFREE,0,0); end; constructor TimagePanel.Create(AOwner: TComponent); begin inherited; btnClose := TButton.Create(Self); btnClose.Parent := Self; btnClose.Caption := '關閉(&C)'; btnClose.OnClick := btnCloseClick; end; procedure TimagePanel.WMMyFree(var Msg: TMessage); begin Msg.Result := 0; Free; end; |
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
引言:哇~~感謝william 大大。 沒想到要用PostMessage, 害我百思不得其解。 謝謝啦。 ..-----------βλμε------------..const WM_MYFREE = WM_USER 1; type TimagePanel = class(TPanel) private btnClose : TButton; procedure btnCloseClick(Sender : TObject); procedure WMMyFree(var Msg: TMessage); message WM_MYFREE; public constructor Create(AOwner: TComponent); override; end; procedure TimagePanel.btnCloseClick(Sender: TObject); begin PostMessage(self.Handle,WM_MYFREE,0,0); end; constructor TimagePanel.Create(AOwner: TComponent); begin inherited; btnClose := TButton.Create(Self); btnClose.Parent := Self; btnClose.Caption := '關閉(&C)'; btnClose.OnClick := btnCloseClick; end; procedure TimagePanel.WMMyFree(var Msg: TMessage); begin Msg.Result := 0; Free; end; ◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |