我有一個delphi形式的TPanel,我想複製所有的TLabels ,當我按下一個按鈕並將它們放在其他面板中時,這個TPanel。 有沒有辦法做到這一點? 謝謝。如何將所有與delphi上的TPanel一起使用的TLabel複製到另一個TPanel?
0
A
回答
5
要copy
的的TLabel從一個TPanel控制到另一個你可以使用這樣的事情
Procedure CopyLabels(ParentControl,DestControl:TWinControl);
var
i : integer;
ALabel : TLabel;
begin
for i := 0 to ParentControl.ControlCount - 1 do
if ParentControl.Controls[i] is TLabel then
begin
ALabel:=TLabel.Create(DestControl);
ALabel.Parent :=DestControl;
ALabel.Left :=ParentControl.Controls[i].Left;
ALabel.Top :=ParentControl.Controls[i].Top;
ALabel.Width :=ParentControl.Controls[i].Width;
ALabel.Height :=ParentControl.Controls[i].Height;
ALabel.Caption:=TLabel(ParentControl.Controls[i]).Caption;
//you can add manually more properties here like font or another
end;
end;
和使用這樣
CopyLabels(Panel1,Panel2);
可以使用RTTI
也可以將屬性從一個控件複製到另一個控件,但是因爲你沒有指定你的Delphi版本,所以我只舉一個簡單的例子。
+0
IDE的版本是XE我會嘗試它是否可以工作 – alexzm1 2011-03-28 19:58:10
-1
TPanel是組件的容器。它的控件屬性中有一個子組件的列表。您可以遍歷該列表以訪問其子項。
在你的代碼中有按鈕的按Panel1的
檢查的控件列表上
迭代如果控制是的TLabel
變化的Parent屬性TLabel爲Panel2
someth荷蘭國際集團這樣的
for i := 0 to Panel1.ControlCount - 1 do
if Panel1.Controls[i] is TLabel then
(Panel1.Controls[i] as TLabel).Parent:=Panel2;
但是,等待!這是不行的。爲什麼?因爲在「即時」執行此更改,您將更改您正在迭代的同一列表。
因此,您必須將要移動的標籤保存在臨時列表中。事情是這樣的......
var
i:integer;
l:TObjectList;
begin
l:=TObjectList.Create;
l.ownsObjects:=False;
for i := 0 to Panel1.ControlCount - 1 do
if Panel1.Controls[i] is TLabel then
l.add(Panel1.Controls[i]);
for i:= 0 to l.Count-1 do
(l[i] as TLabel).Parent:=Panel2;
l.Free;
end;
相關問題
- 1. 如何畫上TPanel
- 2. 我怎麼能釋放一個Tpanel這有一個調用來釋放Tpanel
- 3. Firemonkey將TPanel分配給TPanel不起作用XE10.1柏林
- 4. Delphi中的TPanel數組沒有顯示
- 5. 將TPanel上的顯示圖片複製到TImage中
- 6. 如何在TPanel上繪圖
- 7. 含有TPanel
- 8. 定製TPanel邊境
- 9. Delphi,TPanel對象中的句柄
- 10. 何時使用TPanel FullRepaint?
- 11. 在一些Tpanel上設置Tframe設計
- 12. 如何在Delphi中關閉TPanel(如TCombo)的外部點擊
- 13. 如何打印TPanel內容?
- 14. 如何創建一個類似Tpanel的TCustomControl?
- 15. 將一個DataGrid的所有行復制到另一個
- 16. 將所有表從一個用戶複製到另一個Oracle11g
- 17. 德爾福 - 從TPanel
- 18. TPanel像TRadioGroup的標題?
- 19. C++ Builder的 - 枚舉TPanel
- 20. 在tpanel上創建tpaintbox的問題
- 21. 如何將所有提交的行從一個表複製到另一個表
- 22. 如何將一個Python對象的所有屬性複製到另一個?
- 23. 如何將所有子類別複製到另一個類別
- 24. 將td的所有內容複製到另一個div中的另一個
- 25. 將所有方法從一個類複製到另一個類
- 26. 將所有用戶設置複製到另一個用戶
- 27. Javascript:如何將所有選項從一個select元素複製到另一個?
- 28. 將目錄中的所有文件複製到另一個
- 29. 亮點TPanel上移動鼠標
- 30. 如何重繪一個MDIChild窗體時,將MDIChild本身含有的容器,如TPanel有排列:= alClient和ParentBackground:=假
如果我是你,我會編寫一個例程,用新標籤填充面板並避免使用dfm文件。所以我不會發明重複的邏輯,我會寫一點代碼來合成指定容器內的必要標籤。 – 2011-03-28 18:14:55