PDA

View Full Version : سوال: آرایه ای از TDBMemo ؟؟؟؟؟؟؟



angel_692
یک شنبه 19 دی 1389, 14:09 عصر
سلام
من می خوام توی یک صفحه تعدادی DBMemo رو قرار بدم . مشکل اینجاست که نمی خوام موقع طراحی صفحه این باکس ها گذاشته شوند و می خوام یک آرایه داینامیک از TDBMemo تعریف کنم که موقع نمایش فرم یک تعداد مشخصی از اعضای این آرایه که تمامشون اشیایی از کلاس TDBMemo هستند نمایش داده شوند.
آیا می تونم این باکس ها رو موقع اجرا تولید کنم و روی فرم قرار بدم . آیا نیاز هست که ازتابع create استفاده کنم ؟
لطفا راهنماییم کنید

vcldeveloper
یک شنبه 19 دی 1389, 14:43 عصر
آیا نیاز هست که ازتابع create استفاده کنم ؟
هر شی ایی که ایجاد می کنید، باید Create بشه.


یک آرایه داینامیک از TDBMemo
اگر از دلفی 2009 یا نسخه های جدید استفاده می کنید، استفاده از

TList<TDBDemo>
گزینه مناسب تری هست. اگر از نسخه های قدیمی تر استفاده می کنید، می تونید از TObjectList استفاده کنید. البته یک راه ساده تر هم این هست که اصلا خودتون همچین لیستی نگهداری نکنید، به جاش هر کنترل رو که Create کردید، Owner اش را فرم مربوطه در نظر بگیرید، و بهش هم یک اسم مشخص بدید، سپس از طریق خصوصیت Controls اون فرم، یا متد FindComponent اون فرم، با دادن اسم هر کدوم از کنترل ها، بهش دسترسی داشته باشید.

برای همه مواردی که در توضیحات بالا گفتم در همین سایت نمونه سورس کد پیدا میشه.

angel_692
یک شنبه 19 دی 1389, 15:26 عصر
مرسی از راهنمایی تون .
راستش من تا حالا به کمک کدنویسی کامپوننتی رو به فرم اضافه نکردم و همیشه موقع طراحی فرم کامپوننت ها رو اضافه کردم و نمی دونم که مراحل انجامش به چه شکلی هست . مثلا اگه بخوام با اجرای یک تابع یک Label رو ایجاد و به فرم اضافه کنم چیکار باید بکنم؟

vcldeveloper
یک شنبه 19 دی 1389, 15:39 عصر
مثلا اگه بخوام با اجرای یک تابع یک Label رو ایجاد و به فرم اضافه کنم چیکار باید بکنم؟
کدش در سایت موجود هست، در هر حال....


procedure AddALabelToMyForm(Form: TForm; const Caption: string; X,Y: Integer);
var
MyLable : TLabel;
begin
MyLabel := TLabel.Create(Form);
MyLabel.Parent := Form;
MyLabel.Left := X;
MyLabel.Top := Y;
MyLabel.Caption := Caption;
MyLabel.Visible := True;
end;

مثالی از استفاده اش:


AddALabelToMyForm(Form1,'This is a test', 10,10);