動態 Panel 刪除 |
尚未結案
|
wearefamily
一般會員 發表:12 回覆:16 積分:5 註冊:2004-03-13 發送簡訊給我 |
爬文爬了好久, 看到用 TList 可以刪除動態產生的 Component
如 http://delphi.ktop.com.tw/topic.php?topic_id=22840
about 動態產生元件 但是這個方法,試來試去都沒有辦法只刪掉選到的元件 ?
只試出刪除所有產生並加在TList的元件 有辦法個別刪除選到的某幾個元件 嗎? 或者說 在Panel上加個 popupmenu, 點選就刪除擁有這個 panel,
問題是 怎麼指定這個 Panel給 popmenu刪除呢? 發表人 - wearefamily 於 2004/11/23 21:16:51 發表人 - wearefamily 於 2004/11/23 21:18:14 發表人 - wearefamily 於 2004/11/23 21:51:02
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
這個範例會動態產生10個Panel(按下Button1), 任意選取其中一個Panel, 按Button2刪除選取的Panel.
//--------------------------------------------------------------------------- // Unit1.h #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include |
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 爬文爬了好久, 看到用 TList 可以刪除動態產生的 Component 如 http://delphi.ktop.com.tw/topic.php?topic_id=22840 about 動態產生元件 但是這個方法,試來試去都沒有辦法只刪掉選到的元件 ? 只試出刪除所有產生並加在TList的元件 有辦法個別刪除選到的某幾個元件 嗎? 或者說 在Panel上加個 popupmenu, 點選就刪除擁有這個 panel, 問題是 怎麼指定這個 Panel給 popmenu刪除呢?wearefamily你好: 假設 class="code"> //Item的click事件 void __fastcall TForm1::Delete1Click(TObject *Sender) { POINT point; GetCursorPos(&point); HWND hwnd; hwnd=WindowFromPoint(point); if (hwnd) DestroyWindow(hwnd); } 正歸一點的作法: //就是自已new一個popupmenu,不用拉的,這樣就可以指定popupmenu的owner了! void __fastcall TForm1::FormCreate(TObject *Sender) { TPopupMenu* p1=new TPopupMenu(Memo1); TMenuItem* itm=new TMenuItem(Memo1); itm->Caption="Delete"; itm->MenuItemOnClick; p1->Items->Add(itm); Memo1->PopupMenu=p1; } //--------------------------------------------------------------------------- void __fastcall TForm1::MenuItemOnClick(TObject* Sender) { TMenuItem* itm=(TMenuItem*)Sender; delete itm->Owner; } 注意: 1.事件請自行在.h中宣告 2.這裏用的是TMemo不是TPanel(精神一樣) 參著參著! |
wearefamily
一般會員 發表:12 回覆:16 積分:5 註冊:2004-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |