全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:972
推到 Plurk!
推到 Facebook!

動態產生物件解構會產生誤錯的問題

尚未結案
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-21 17:05:05 IP:211.76.xxx.xxx 未訂閱
問題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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-22 12:13:56 IP:203.222.xxx.xxx 未訂閱
Free 後,button 還在處理中,但是本身已經被 Free 所以會出錯
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-24 18:31:05 IP:61.229.xxx.xxx 未訂閱
引言: Free 後,button 還在處理中,但是本身已經被 Free 所以會出錯
那請問大大,程式要怎麼改啊? ^_^,我都不會改>_<... ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-25 09:41:37 IP:147.8.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-26 11:22:56 IP:61.229.xxx.xxx 未訂閱
引言:
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;
哇~~感謝william 大大。 沒想到要用PostMessage, 害我百思不得其解。 謝謝啦。 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
系統時間:2024-05-03 4:08:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!