PDA

View Full Version : FindComponent



nassim_20
شنبه 08 تیر 1387, 16:39 عصر
مشکل کد زیر چیه
موقع اجرا ارور میده ولی در زمان کامپایل خطا نمیدهد

for i:= 1 to 11 do
begin
with Timageq2(FindComponent('img_' + IntToStr(i))) do
begin
Picture := (FindComponent('img_' + IntToStr(i)+'_1') as TImage).Picture;
end;
end;

vcldeveloper
شنبه 08 تیر 1387, 17:35 عصر
موقع اجرا ارور میده
وقتی Error میده، باید متن خطا رو هم اینجا بزارید.

Timageq2 چی هست؟ کلاسی هست که خودتون تعریف کردید؟ اگر خودتون تعریفش کردید، چطور تعریفش کرید؟
کد بالا قرار هست چیکار بکنه؟ کد بالا کجا نوشته میشه؟ در لحظه اجرای کد هر 11 شی مورد نظر شما ایجاد شدند و وجود دارند؟ مطمئن هستید که img_1_1 و سایر اشیاء شبیه به آن، در زمان اجرا وجود دارند و توسط FindComponent پیدا میشوند؟

Hsimple11
شنبه 08 تیر 1387, 17:59 عصر
میخواهید چه کاری انجام دهید؟ یکسری image دارید که میخواهید عکسشان را به یکسری image دیگری که دارید اختصاص دهید؟ چه Errorای میدهد؟ مطمئنید Image هایی با همین Name در روی فرماتان ایجاد کرده اید؟

for i:= 1 to 11 do begin
Timage(FindComponent('img_' + IntToStr(i))).Picture :=
(FindComponent('img_' + IntToStr(i)+'_1') as TImage).Picture;
end;
end;

موفق باشید...

kamrannazari
چهارشنبه 12 اسفند 1388, 02:35 صبح
قبلش بررسي كنيد كه آيا اصلا چنين كامپوننتي وجود دارد يا خير؟


for i:= 1 to 11 do begin
if FindComponent('img_' + IntToStr(i))<>nil Then
Timage(FindComponent('img_' + IntToStr(i))).Picture :=
(FindComponent('img_' + IntToStr(i)+'_1') as TImage).Picture;
end;
end;

kamrannazari
چهارشنبه 12 اسفند 1388, 02:37 صبح
البته براي اطمينان بيشتر حتي مي توني بررسي كني كه آيا كلاسش همون كلاس هست يا خير؟


for i:= 1 to 11 do begin
if FindComponent('img_' + IntToStr(i))<>nil Then
FindComponent('img_' + IntToStr(i)).ClassType=Timage Then
Timage(FindComponent('img_' + IntToStr(i))).Picture :=
(FindComponent('img_' + IntToStr(i)+'_1') as TImage).Picture;
end;
end;