ورود

View Full Version : سوال: چرا برنامه تصویری که توی کامپوننتم گذاشتم فقط زمان طراحی می شناسه؟



mbshareat
پنج شنبه 09 مهر 1388, 21:33 عصر
من قبلا یه کامپوننت ساده دکمه طراحی کرده بودم که توی یکی از تاپیکهای قبلی گذاشته بودم. (بماند که کسی نظر نداد..!) حالا یه بیت مپ گذاشتم تو فایل DCR و کمی کد به یونیت کامپوننتم اضافه کردم (که ببینم میشه از تصویر برای ظاهر کامپوننت استفاده کرد؟) به قرار زیر:

type
ButShapeType=(Led,Colored,RoundBut);
TXBut = class(TGraphicControl)
private
{ Private declarations }
...
protected
{ Protected declarations }
procedure Paint;OverRide;
...
Procedure Draw();{جدیداً اضافه کرده ام}
public
{ Public declarations }
...
published
{ Published declarations }
...
end;
...
implementation
....
....
procedure TXBut.Paint;
Var
AddN:Byte;
BorderClr:TColor;
begin
....
....
Draw; {جدیداً اضافه کرده ام}
end;
{جدیداً اضافه کرده ام}
Procedure TXBut.Draw();
var
BitMap1 : TBitMap;
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'Components ');
Canvas.Draw(12,12,BitMap1);
finally
BitMap1.Free;
end;
end;

امیدوار بودم بتونم تو کامپوننتم از بیت مپ استفاده کنم ولی با کمال تعجب دیدم تنها زمان طراحی تصویر برای دلفی قابل شناساییه و تو ظاهر کامپوننتک انعکاس پیدا می کنه ولی زمان اجرا، برنامه نمی تونه تصویر رو پیدا کنه و خطا می ده! کسی می دونه مشکل از کجاست و چطور باید مشکل رو رفع کرد؟آقای کشاورز لطفا کمک کنین...من چندتا تاپیک در مورد کامپوننت داشتم از دوستان می خوام به بنده عنایتی کنند و بنده مبتدی رو راهنمایی کنن!!! توی فایلهای ضمیمه تصویر پیام خطا و تصویر برنامه ام در زمان طراحی و برنامه ام به همراه کامپوننم رو می ذارم:

vcldeveloper
جمعه 10 مهر 1388, 01:05 صبح
فایل های DCR فقط در زمان طراحی استفاده میشند، و در زمان اجرا کاربردی ندارند. برای اینکه resource مربوطه در زمان اجرا در دسترس باشه، باید بجای فایل DCR، تصویر را در فایل RES ذخیره کنید، و فایل RES را به پروژه لینک کنید (با استفاده از رهنمود کامپایلر R$).

mbshareat
جمعه 10 مهر 1388, 01:30 صبح
جناب آقای کشاورز ارجمند!:تشویق:
می شه لینک کردن رو به من یاد بدین؟:بامزه:
آیا باید تو فایلم یونیت کامپوننتم بعد از Impelement بذارم مثلا {R XBut.Res$} و یه فایل XBut.res هم درست کنم و تصویر رو توش بریزم؟

«زکاة ُ العلم نشرُه»

vcldeveloper
جمعه 10 مهر 1388, 10:20 صبح
آیا باید تو فایلم یونیت کامپوننتم بعد از Impelement بذارم مثلا {R XBut.Res$} و یه فایل XBut.res هم درست کنم و تصویر رو توش بریزم؟
بله. درباره ساخت Resource و استفاده از آن در برنامه قبلا توضیح داده شده.