請教如何可以在程式運行中create及delete元件?? |
尚未結案
|
christy315
一般會員 ![]() ![]() 發表:9 回覆:8 積分:3 註冊:2004-07-11 發送簡訊給我 |
|
change.jian
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
hi,christy315:
如下:
procedure TForm1.BitBtn1Click(Sender: TObject); var aLabel:TLabel; begin aLabel:=TLabel.Create(Self); aLabel.Parent:=GroupBox1; aLabel.Top:=50; aLabel.Left:=50; aLabel.Caption:='這是產生的Label'; end;重點是aLabel.Parent:=GroupBox1這一行,這樣aLabel才會顯示出來 至於刪除,就是把aLabel.free就好.但要記得,動態產生的TLabel,要把變數儲存起來,後面要刪除才好free; |
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
1.如果元件的 Owner 是 Form1, 就用 Form1.FindComponent
如果元件的 Owner 是 GroupBox1, 就用 GroupBox1.FindComponent
假設要刪除 GroupBox1 中的 Image1 與 Label1, 例:
var img: TImage; lbl: TLabel; begin img := Form1.FindComponent('Image1') as TImage; // img := GroupBox1.FindComponent('Image1') as TImage; if img <> nil then FreeAndNil(img); // 刪除 Image1 lbl := Form1.FindComponent('Label1') as TLabel; // lbl := Form1.FindComponent('Label1') as TLabel; if lbl <> nil then FreeAndNil(lbl); // 刪除 Label1 end;也可用 GroupBox1.ControlCount 來做, 例: var i: integer; c: TControl; begin for i := GroupBox1.ControlCount - 1 downto 0 do begin c := nil; if (GroupBox1.Controls[i] is TImage) and (GroupBox1.Controls[i].Name = 'Image1') then begin c := GroupBox1.Controls[i]; FreeAndNil(c); end; if (GroupBox1.Controls[i] is TLabel) and (GroupBox1.Controls[i].Name = 'Label1') then begin c := GroupBox1.Controls[i]; FreeAndNil(c); end; end; end;2.在 GroupBox1 上 Create 一個 Label1 與 Image1: var img: TImage; lbl: TLabel; begin img := TImage.Create(GroupBox1); // img 的 Owner 為 GroupBox1 img.Parent := GroupBox1; img.Name := 'Image1'; img.Top := 5; img.Left := 30; lbl := TLabel.Create(GroupBox1); lbl.Parent := GroupBox1; lbl.Name := 'Label1'; lbl.Caption := 'Label1'; lbl.Top := 5; lbl.Left := 5; end;-- ![]() |
richtop
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
christy315 您好: 底下程式供您參考! 繼續加油!
|
christy315
一般會員 ![]() ![]() 發表:9 回覆:8 積分:3 註冊:2004-07-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |