PDA

View Full Version : سوال: اضافه کردن خاصیت Font به Component



diplomat
یک شنبه 20 مرداد 1387, 09:28 صبح
با سلام
خاصیت فونت را به کامپوننتم اضافه می کنم ولی بعد از اتمام کار
در هنگام تنظیم فونت در پنجره Object Inspector یه خطا خفن میده
دوستان لطفا راهنمایی کنید

vcldeveloper
یک شنبه 20 مرداد 1387, 11:38 صبح
انتظار دارید خطای خفن را حدس بزنیم؟! هم کدی که برای اضافه کردن خصوصیت Font نوشتید رو بزارید، هم پیغام خطا رو!

diplomat
پنج شنبه 24 مرداد 1387, 12:09 عصر
private
FValueFont:TFont

published
property ValueFont:TFont read FValueFont write FValueFont

constructor
FValueFont:=TFont.Create

Error
Access violation at address 40005A0C in module 'rtl70.bpi' . Read of address FFFFFFDC

diplomat
یک شنبه 10 شهریور 1387, 07:53 صبح
کسی جواب را نمیدونه ؟

hadisalahi2
یک شنبه 10 شهریور 1387, 08:58 صبح
من فکر نمیکنم مشکل مربوط به فونت باشه ، چون متن خطا در مورد عدم دسترسی به یک آدرس خاص داخل فایل rtl70.bpi است . حالا چرا دسترسی به این فایل باعث بروز خطا میشه، ممکنه دلایل مختلفی داشته باشه.
در ضمن یه پیشنهاد هم دارم . اینکه کدها رو داخل تگ Code بزاری و اونها رو چپ چین کنی.
یا حق

vcldeveloper
یک شنبه 10 شهریور 1387, 13:13 عصر
من فکر نمیکنم مشکل مربوط به فونت باشه ، چون متن خطا در مورد عدم دسترسی به یک آدرس خاص داخل فایل rtl70.bpi است . حالا چرا دسترسی به این فایل باعث بروز خطا میشهدسترسی به اون فایل باعث خطا نمیشه! rtl70.bpi بسته Runtime دلفی 7 هست که کدهای runtime دلفی را در خودش داره. خطا بخاطر چیز دیگه ایی هست که منجر به ایجاد AV در Runtime دلفی میشه.


کسی جواب را نمیدونه ؟کامپوننتون از کدوم کلاس مشتق شده؟ فونت را در کجای آن استفاده کردید؟ چه کاری انجام میدید که منجر به ایجاد پیغام خطا میشه؟

diplomat
یک شنبه 17 شهریور 1387, 09:32 صبح
کلاس TImage و برای نوع فونت متونی که توسط کنواس نوشته میشه

vcldeveloper
یک شنبه 17 شهریور 1387, 18:50 عصر
کلاس TImage و برای نوع فونت متونی که توسط کنواس نوشته میشه


interface
uses
Windows, SysUtils, Classes, ExtCtrls, Graphics;

type
TMyImage = class(TImage)
private
FMyFont : TFont;
procedure SetMyFont(Value: TFont);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property MyFont: TFont read FMyFont write SetMyFont;
end;

implementation

{ TMyImage }

constructor TMyImage.Create(AOwner: TComponent);
begin
inherited;
FMyFont := TFont.Create;
end;

destructor TMyImage.Destroy;
begin
FreeAndNil(FMyFont);
inherited;
end;

procedure TMyImage.SetMyFont(Value: TFont);
begin
Canvas.Font.Assign(FMyFont);
end;

end.

hajibandeh
شنبه 06 مهر 1387, 13:01 عصر
من همون Diplomat هستم و از آقای کشاورز بابت راهنمایشون تشکر میکنم مشکلم حل شد