關於 TStatusBar 的元件設計問題? |
答題得分者是:danny
|
skurama
中階會員 發表:88 回覆:127 積分:73 註冊:2002-07-22 發送簡訊給我 |
請問:
目前季想繼承TStatusBar,在上面有三個TStatusPanel,
也就是我新的元件一拉到Form上就已經拉好三個TStatusPanel。
我的程式如下: unit SBTest; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls; type
TSBTest = class(TStatusBar)
private
Panel1 : TStatusPanel;
Panel2 : TStatusPanel;
Panel3 : TStatusPanel;
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
{ Public declarations }
published
{ Published declarations }
end; procedure Register; implementation procedure Register;
begin
RegisterComponents('YoungNet VCL V3', [TSBTest]);
end; { TSBTest } constructor TSBTest.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Panel1 := self.Panels.add;
panel1.text := 'Panel1';
Panel1.Index := 0;
panel1.width := (AOwner as TForm).width div 3;
Panel2 := self.Panels.add;
panel2.text := 'Panel2';
Panel2.Index := 1;
panel2.width := (AOwner as TForm).width div 3;
Panel3 := self.Panels.add;
panel3.text := 'Panel3';
Panel3.Index := 2;
panel3.width := (AOwner as TForm).width div 3;
end; destructor TSBTest.Destroy;
begin
Panel1.free;
panel2.free;
panel3.free;
inherited Destroy;
end; end. 則正常,但是如果加上Panel3時,
尚關閉表單時,則會出現記憶體錯誤,
但如果變回二個panel時,則正常。 但是我用標準元件時,設定成三個panel就不會有問題
請問是否是在我Add時出了什麼問題? ----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
------
---------------- 初出芧房程設師, 左鍵右鼠寫程式, 日扣夜寫眼框溼, 望能早成系分師。 ---------------- |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
引言: 請問: 目前季想繼承TStatusBar,在上面有三個TStatusPanel, 也就是我新的元件一拉到Form上就已經拉好三個TStatusPanel。 我的程式如下:是您 Free StatusPanel 的順序不對, 要反過來 Free (3,2,1 ...) 不過您這個例子 StatusPanel 是不用 Free 的, 它會由 Owner 負責 Free 掉.destructor TSBTest.Destroy; begin Panel1.free; panel2.free; panel3.free; inherited Destroy; end;則正常,但是如果加上Panel3時, 尚關閉表單時,則會出現記憶體錯誤, 但如果變回二個panel時,則正常。 但是我用標準元件時,設定成三個panel就不會有問題 請問是否是在我Add時出了什麼問題?
------
將問題盡快結案也是一種禮貌! |
skurama
中階會員 發表:88 回覆:127 積分:73 註冊:2002-07-22 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |