要如何用BCB自動產生BUTTON物件並設定屬性呢? |
尚未結案
|
rauhh
一般會員 發表:24 回覆:14 積分:7 註冊:2005-03-23 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
rauhh 您好: 要動態產生物件可使用 new 指令,例如:
TButton *MyButton = new TButton(this);
TTabSheet *newPage = new TTabSheet(PageControl1);
無論屬性是否由資料庫讀出的,都請參考下列作法來設定動態產生物件的屬性與事件:
MyButton->Parent = Panel1; // 指定或轉移所屬上層物件為 Panel1 MyButton->Caption = "test"; // 設定 Caption 字樣為 "test" MyButton->Left = 10; // 指定放置的 X 座標為 10 MyButton->Top = 5; // 指定放置的 Y 座標為 5 MyButton->Width = 40; // 指定寬度為 30 MyButton->Height = 20; // 指定寬度為 30 MyButton->OnClick = myClick; // 指定 OnClick 事件執行程序,myClick 為自設程序名稱要記得 new 出來的物件要在不使用或是程式結束時使用 delete 指令刪除掉,例如: delete MyButton; MyButton = NULL; 將 Image 內容畫到 PaintBox 上面請參考以下作法: PaintBox1->Canvas->Draw(20, 20, Image1->Picture->Graphic);有關儲存圖檔的動作,請參考以下文章: 如何將PaintBox上的影像存成bmp檔? http://delphi.ktop.com.tw/topic.php?topic_id=58692 關於PaintBox與image的合成 http://delphi.ktop.com.tw/topic.php?topic_id=46918 |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
經熱心網友 yyu10 以簡訊告知有關 new 與 delete 較為明確的使用時機,為了避免誤導各位看倌,我對前一篇有關 new 與 delete 的部分作個補充,以下內容整理、節錄自簡訊:
在決大多數情況下, 要嚴格保証這種對應關系, 但 new 一個控件時是個例外. 與一般物件不同之處在於, 每個控件都有一個 Owner (一般是另一個控件). 在程式結束時, Owner 負責釋放 (delete) 它擁有的所有子控件, 也就是說 - 不一定需要寫程式的人主動釋放 new 出來控件. 分兩種情況考慮:
1. TButton *MyButton = new TButton(Form1);
或 TButton *MyButton = new TButton(Panel1);
或 TButton *MyButton = new TButton(this); new 出來的 TButton 都有一個 Owner, 分別是 Form1, Panel1, this 指針指向的某個控件. 這種情況下, 不用直接呼叫 delete. 2. TButton *MyButton = new TButton(NULL);
new 出來的 TButton 沒有 Owner. 使用完 MyButton 後, 需要直接呼叫delete 來釋放 MyButton. delete MyButton;
MyButton = NULL;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |