PDA

View Full Version : سوال: تغییر property های کامپوننتهای هم کلاس در یک فرم به طور همزمان



iamehsan56
جمعه 04 بهمن 1392, 12:38 عصر
سلام
من می خوام یکی از property های همه اون کامپوننتهایی که یک کلاس توی یه فرم دارند رو به طور همزمان تغییر بدم .
نمی خوام با یه حلقه for و با findcomponent اونا را پیدا کنم . چون کامپوننتام توی فرم زیاده .
آیا روشی هست ؟
به همین ترتیب من یه تعداد کامپوننت رو فرممم دارم که فایل swf رو play می کنن . می خوام همزمان همه اونا رو stop کنم . یعنی در واقع یه فانکشن از همشون رو همزمان اجرا کنم .

راهنمایی بفرمایید لطفا دوستان

یوسف زالی
شنبه 05 بهمن 1392, 09:40 صبح
سلام.
باید تمام کامپوننت های فرم رو پیمایش کنید.


var
i: integer;
begin
for i := 0 to ComponentCount -1 do
if Components[i] is TButton then
with TButton(Components[i]) do
begin
Caption := IntToStr(i);
Hint := 'Test';
Click;
end;
end;

iamehsan56
یک شنبه 06 بهمن 1392, 17:31 عصر
حرف شما درسته . اما وقتی تعداد کامپوننتا زیاد باشه خیلی کند می شه . به این خاطر می خوام ببینم چه کار دیگه ای می شه کرد

یوسف زالی
دوشنبه 07 بهمن 1392, 10:19 صبح
چندان کند نمی شه.
در مورد چند هزار تا کامپوننت زیر ثانیه هست.

hadisalahi2
دوشنبه 07 بهمن 1392, 10:57 صبح
موافقم
اصلا هیچ کندی نداره

راه دیگش اینه که کامپوننتهایی که میخوای رو FindComponent کنی تا فقط اونهایی که میخوای رو تغییر مقدار بدی
برای این کار هم ، میتونی یک اسم برای همه با یک شناسه عددی بزاری که قابل پیمایش باشند.

مثلا


IMG001
IMG002
.
.
.
IMG200