سلام
چطوری میشه در زمان اجرا از یه المان کپی گرفت؟؟
فرض کنید که مثلن توی فورم یه گرید داریم و کلی هم تنظیماتش رو تغییر دادیم ، حالا در زمان اجرا از همین المان می خوام یه کپی بگیرم با نام دیگه؟؟
ممنون
کپی یک پنل
کد:
{ This code shows how to clone a TPanel (Panel1)
You can do it with any other component
Dieser Code zeigt, wie ein TPanel (Panel1) geklont
werden kann. Das funktioniert natürlich auch mit
anderen Komponenten
}
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TMemoryStream;
s: string;
p, temp: TPanel;
x,y: Integer;
begin
ms := TMemoryStream.Create;
try
temp := panel1;
s := panel1.Name;
panel1.Name := '';
try
ms.WriteComponent(temp);
ms.Position := 0;
p := TPanel.Create(Self);
ms.ReadComponent(p);
with p do
begin
x := panel1.Left;
y := panel1.Top;
Inc(x, 5);
Inc(y, 5);
SetBounds(x, y, Width, Height);
Parent := Self;
Name := Format('Panel%d_%d', [x, y]);
end;
finally
temp.Name := s;
panel1 := temp;
end
finally
ms.Free;
end; { finally }
end;
سلام
متاسفانه جواب نداد؟!؟!؟
روش دیگه ای نیست؟
سلام
کاملن به روش سنتی این کار رو کردم :
تمام تنظیمات عنصر جدید رو کپی کردم
کد:
L_PGC := TScrollBox.Create(Form_Main);
Form_Main.PageControl1.AddTabSheet.Name:= L_Str_Temp;
Inc(L_i);
with L_PGC do begin
Parent := Form_Main.PageControl1.Pages[L_i];
//Name:= IntToStr(Form_Main.PageControl1.ActivePageIndex);
Caption:= L_Str_Temp;
Name:= 's'+IntToStr(L_i);
//ShowMessage('Parent.Name : '+Parent.Name);
Align:=alClient;
Anchors:=[akBottom,akLeft,akRight,akTop];
AutoScroll:= False;
Cursor:= crArrow;
DockSite:= True;
with HorzScrollBar do begin
Increment:= 5;
Page:=50;
Range:=600;
Smooth:= True;
Tracking:= True;
end;
with VertScrollBar do begin
Increment:= 5;
Page:=50;
Range:=600;
Smooth:= True;
Tracking:= True;
end;
OnMouseDown:= Form_Main.ScrollBox1.OnMouseDown;
OnMouseEnter:= Form_Main.ScrollBox1.OnMouseEnter;
OnMouseLeave:= Form_Main.ScrollBox1.OnMouseLeave;
OnMouseMove:= Form_Main.ScrollBox1.OnMouseMove;
OnMouseUp:= Form_Main.ScrollBox1.OnMouseUp;
OnExit:= Form_Main.ScrollBox1.OnExit;
end;
یه سوال دارم
توی خط اول عنصر L_PGC رو می سازم ، خط آخر باید آزادش کنم؟؟؟
چطوری ممنون
چرا ازادش کنین؟
برای ازاد کردن
چون دارم توی یه تابع از این دستورات استفاده کنم.
هر بار که این تابع رو فراخوانی می کنم ، دارم از نمونه L_PGC می سازم.