ورود

View Full Version : مشکل در خواندن کامپوننت



FROZONE
دوشنبه 11 تیر 1386, 16:16 عصر
با عرض سلام
من روی فرمم یک کامپوننت ScrollBox گذاشتم و در زمان اجرای برنامه چند تا Edit رو Create میکنم و Parent اونها رو به ScrollBox انتساب میدم .ولی زمانی که می خوام همین Editها رو که Create کردم از رو صفحه بخونم و مثلا خاصیت ReadOnly اونها رو تغییر بدم اونها رو تشخیص نمیده . در ضمن از کد زیر برای خوندن Editها استفاده میکنم:


For Comp := 0 To ScrollBox.ComponentCount - 1 do
IF ScrollBox.Components[Comp]IS TEdit Then
TEdit(ScrollBox.Components[Comp]).ReadOnly := S;

issa_nagheri
دوشنبه 11 تیر 1386, 16:28 عصر
تو می تونی بجای خواندن Edit ها از ScrollBox از فرم استفاده کنی.

For Comp := 0 To Self.ComponentCount - 1 do
IF Self.Components[Comp]IS TEdit Then
TEdit(Self.Components[Comp]).ReadOnly := S;

nassim_20
دوشنبه 11 تیر 1386, 16:48 عصر
از کد زیر هم می تونی استفاده کنی
For i := 0 To Self.ComponentCount - 1 do
if FindComponent('Edit' + inttostr(i)) is TEdit then
with TTEdit(FindComponent('Edit' + IntToStr(i))) do
ReadOnly := S;
داخل پرانتز findcomponent باید نامی را که به edit نسبت داده ای را بیاوری

Arman_1367
دوشنبه 11 تیر 1386, 16:56 عصر
قبلاً دررابطه با این نوع حلقه ها بحث شده .

vcldeveloper
چهارشنبه 13 تیر 1386, 09:32 صبح
هر چند ScrollBox به عنوان Parent اون Editها معرفی شده، اما Owner اونها فرم ایی هست که بر روی آن قرار دارند؛ خصوصیاتی مثل Components لیست کامپوننت هایی را که کلاس مربوطه مالکشان هست را برمی گردانند.