ساخت یک کپی از یک پانل با محتویاتش در حالت اجرا
سلام بچه ها
ببینید ، من یک مجموعه کنترل دارم (شامل Image,Edit,Lable,....) که روی یک پانل اینها رو چیدم
حالا این پنل ، باید به تعداد رکوردهای یکی از جداولم ، باید روی فرم ایجاد بشه.
حالا چطوری میتونم این پنل رو در حالت RunTime با کد ایجاد کنم ، که همه کنترل های داخل اون هم ساخته بشه؟
من برای ساختن مثلا یک Image روی کامپوننت PageSlider از مجموعه Tms به این روش عمل میکنم:
NewPage:=TAdvSmoothPage.Create(ReportPages);
NewPage.SetComponentStyle(tsOffice2010Blue);
NewPage.Name:='Page'+IntToStr(ReportPages.PageCoun t);
NewPage.Header:='';NewPage.Footer:='';
NewPage.HeaderHeight:=70;NewPage.FooterHeight:=30;
NewPage.Header:=IntToStr(ReportPages.PageCount);
ReportPages.AddPage(NewPage);
//---------------------------------------
NewImage:=TImage.Create(NewPage);
NewImage.Parent:=NewPage;
with NewImage do Begin
Name:='AgentImage'+IntToStr(I);
Height:=65;Width:=60;
Stretch:=True;
Hint:='نام نماینده';
ShowHint:=True;
Top:=3;Left:=3;
Picture.LoadFromFile('G:\1.jpg');
End;
در این روش ، من از اول میام و همه کنترل ها رو یکی یکی با کد میسازم و روی Page قرار میدم
فرضا اگه 10 تا کنترل متفاوت دارم ، اینها رو با کد میسازم و Parent همه آنها رو روی مثلا روی Page1 قرار میدم.
حالا من میخوام برای راحت شدن کار ، یکی از این Page ها رو با تمام کامپوننت های داخلش در حالت Design طراحی کنم
و بعد ، در حالت اجرا ، همین Page رو با کد نویسی ، کپی کنم ، جوری که همه کامپوننت های داخلش هم کپی بشه.
آیا اصلا این روش منطقی هستش و قابل اجرا؟
ببخشید طولانی شد:لبخند:
نقل قول: ساخت یک کپی از یک پانل با محتویاتش در حالت اجرا
سلام.
روش خوبیه.
یکی از راههاش استفاده از فریم هست که تخصصی شده برای همچین کارهاییه.
یک فریم جدید درست کن و هرچی دل تنگت می خواد بریز توش.
حالا مثلا در یک دکمه بنویس:
procedure TForm1.Button1Click(Sender: TObject);
var
f: TFrame;
begin
f := TFrame3.Create(Self);
f.Parent := Self;
f.Name := 'frame_' + IntToStr(GetTickCount);
f.Show;
end;
نقل قول: ساخت یک کپی از یک پانل با محتویاتش در حالت اجرا
ممنون از جوابت داداش
ولی چند تا مشکل توی این روش هستش
اول اینکه ، من میخوام این فریم یا پنل را، روی کامپوننت PageSlider از مجموعه TMS قرار بدم ، ولی متاسفانه ، فریم شفاف قرار نمیگره و روی صفحه کامپوننت رو می پوشونه
دوم اینکه ، این صفحات رو میشه با ماوس جابجا کرد ، اما وقتی پرنت فریم رو روی مثلاPageSlider1 تنظیم میکنم ، دیگه نمیشه صفحات رو با ماوس ورق زد ، مگه از جایی که فریم روی اون قسمت قرار نگرفته باشه.
سوم اینکه ، بعد از ایجاد هر فریم ، چطوری به کنترل هاش دسترسی پیدا کن؟ مثلا من میخوام روی ادیت باکس فریم سه ، مقادیری بریزم ، یا حالا هر نوع دسترسی دیگه. (البته این آخری ، سواله نه مشکل)
نقل قول: ساخت یک کپی از یک پانل با محتویاتش در حالت اجرا
بچه ها کسی نیست جواب ما رو بده ؟ :افسرده: