ايران ويج

نسخه‌ی کامل: کپی از یک المان ؟؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
چطوری میشه در زمان اجرا از یه المان کپی گرفت؟؟
فرض کنید که مثلن توی فورم یه گرید داریم و کلی هم تنظیماتش رو تغییر دادیم ، حالا در زمان اجرا از همین المان می خوام یه کپی بگیرم با نام دیگه؟؟
ممنون
کپی یک پنل

کد:
{ 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 رو می سازم ، خط آخر باید آزادش کنم؟؟؟
چطوری ممنون
چرا ازادش کنین؟

برای ازاد کردن

کد php:
L_PGC.free
چون دارم توی یه تابع از این دستورات استفاده کنم.
هر بار که این تابع رو فراخوانی می کنم ، دارم از نمونه L_PGC می سازم.