PDA

View Full Version : font در component



lord_viper
دوشنبه 08 مرداد 1386, 23:05 عصر
با سلام
من میخواهم برای componentی که دارم طراحی میکنم مثل کامپوننتهای دلفی قابلیت فونت رو بگزارم چطور اینو برای componentام تعریفش کنم؟
با تشکر

ghabil
سه شنبه 09 مرداد 1386, 00:43 صبح
آخه کامپونتت چی هست ؟ اینکه بخوای براش قابلیت فونت بزاری خب یک پراپرتی Published براش بزار از نوع TFont ولی اینکه چحوری ازش استفاده کنی مهمه.

Arman_1367
سه شنبه 09 مرداد 1386, 01:15 صبح
این مثال را ببین :

unit Unit2;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

Type
TMyFontComponentExam = Class(TComponent)
Private
FFont : TFont ;
Procedure SetFont(Value:TFont);
Procedure FontChanged(Sender:TObject);
Public
Constructor Create(Aowner:TComponent);override;
Destructor Destroy;override;
Published
Property Font:TFont Read FFont Write SetFont;
End;

implementation

{ TMyFontComponentExam }

constructor TMyFontComponentExam.Create(Aowner: TComponent);
begin
inherited;
FFont:=TFont.Create;
FFont.OnChange:=FontChanged;//If You Need It
end;

destructor TMyFontComponentExam.Destroy;
begin
FFont.Free;
inherited;
end;

procedure TMyFontComponentExam.FontChanged(Sender: TObject);
begin
//Do Some This When The Font Changed You Need Exam In TLabel Repaint;
end;

procedure TMyFontComponentExam.SetFont(Value: TFont);
begin
FFont.Assign(Value);
//Do not Use "FFont:=Value;" This Way Is Wrang
end;

end.

برای تمام کلاسهایی که به این شکل در کمپاننت استفاده می شوند این روش به کار می رود مثلاً برای داشتن یک TBitmap نیز که کلاس می باشد و مدیریت حافظه با ماست این روش صحیح است.

Valadi
سه شنبه 09 مرداد 1386, 23:01 عصر
معمولا فونتها را از طریق ریسورس وارد فایل اجرایی می کنند و در ساخت فرم بررسی می کند که آیا فونت هست یانه اگر بود برنامه اجرا می شود و اگر نبود فونتها را نصب می کند و برنامه اجرا می شود
برای این کار سرچ کنی مطالبی زیادی بحث شده است
موفق و موید باشی

Arman_1367
چهارشنبه 10 مرداد 1386, 00:12 صبح
معمولا فونتها را از طریق ریسورس وارد فایل اجرایی می کنند و در ساخت فرم بررسی می کند که آیا فونت هست یانه اگر بود برنامه اجرا می شود و اگر نبود فونتها را نصب می کند و برنامه اجرا می شود
برای این کار سرچ کنی مطالبی زیادی بحث شده است
موفق و موید باشی

چه ربطی داره به :

من میخواهم برای componentی که دارم طراحی میکنم مثل کامپوننتهای دلفی قابلیت فونت رو بگزارم چطور اینو برای componentام تعریفش کنم؟