View Full Version : نحوه وارد کردن نام کامپیوننت در سورس برنامه
ARASHFK_F
دوشنبه 12 شهریور 1386, 14:25 عصر
من در هنگام اجرای برنامه تعدادی کامپیونت به صورت دینامیک را می سازم و اگر بخواهم دوباره آنها را در سورس برنامه صدا بزنم چگونه باید اسم آنها را در سورس وارد نمایید تا بتوانم از آنها استفاده کنم؟:گریه:
hr110
سه شنبه 13 شهریور 1386, 11:44 صبح
1- اگر کامپوننتهای شما Visaul باشند میتوانید از Controls استفاده کنید. به عنوان مثال اگر یکسری لیبل در یک پنل ریخته باشید از Panel1.Controls استفاده کرده و لیست را جستجو کنید.
2- یک لیست از نوع TList ایجاد کرده و تمامی کامپوننتهای ایجاد شده را در آن درج کنید .
amirrf
سه شنبه 13 شهریور 1386, 16:21 عصر
اگر تعداد آنها مشخص است، برای دسترسی به هر کدام که لازم است یک متغیر تعریف کنید تا از طریق آن به شئ ساخته شده دسترسی مستقیم داشته باشید.
issa_nagheri
سه شنبه 13 شهریور 1386, 18:14 عصر
اگر منظور شما رو درست متوجه شدم باشم فکر می کنم راه حل اینکه از دستور زیر در کدت استفاده کنی:
TObject (Self.FindComponent('ComponentName'))
بجای Self اسم فرم و بجای ComponentName اسم کامپوننت را وارد کن.
hr110
سه شنبه 13 شهریور 1386, 19:40 عصر
اگر منظور شما رو درست متوجه شدم باشم فکر می کنم راه حل اینکه از دستور زیر در کدت استفاده کنی:
TObject (Self.FindComponent('ComponentName'))
بجای Self اسم فرم و بجای ComponentName اسم کامپوننت را وارد کن.
این در حالتی است که شما تمامی کامپوننتهای خود را در فرم قرارداده باشید، که معمولاً اینطور نیست، برنامه نویسان حرفه ایی کامپوننتهای خود را در یک پانل در فرم قرار میدهند و گاهاً برای کامپوننتهای مشابه(مثل کلیدها) نیز یک پانل مجزا استفاده میشود که مزایای زیادی را برای شما خواهد داشت.
در هر حال شاید این سوال یک راه حل داشته باشد که عرض شد. ضمناً برای یافتن کامپوننتهای درج شده در یک فرم و پانلهای موجود در آن باید از یک متد بازگشتی استفاده شود.
خوش باشید
issa_nagheri
چهارشنبه 14 شهریور 1386, 16:16 عصر
بطور مسلم گذاشتن تمام کامپوننت ها بر روی فرم کار غلطی است.
ولی اون کدی که من دادم برای جستجو تنها در فرم نبوئ بلکه پنل ها رو هم شامل می شد. حتی دارای برگشت هم هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.