PDA

View Full Version : فونت؟



1485159
دوشنبه 18 خرداد 1388, 15:39 عصر
ببخشید شاید سوال تکراری باشه ولی من جست و کردم...
میخوام اسم فونت هایی رو که موجود هست رو بدست بیارم و بعد توی یه لیست باکس بریزم..
ممنون.

shervin farzin
دوشنبه 18 خرداد 1388, 17:19 عصر
سلام

ComboBox1.Items:=Screen.Fonts;

موفق باشيد.

1485159
دوشنبه 18 خرداد 1388, 21:45 عصر
خوب حالا چیکار کنیم که باهمون فونت نشون بده؟
مثل word
ممنون.

shervin farzin
سه شنبه 19 خرداد 1388, 19:54 عصر
سلام
براي اين كار بايد رسم Item هاي combobox رو خودتون انجام بديد .
هر combobox رويدادي به نام OnDrawItem داره . كد زير رو در اين رويداد بنويسيد :

with ComboBox1.Canvas do
begin
Font.Name:=Screen.Fonts.Strings[Index];
FillRect(Rect);
TextOut(Rect.Left,Rect.Top,pchar(Screen.Fonts.Stri ngs[Index]));
end;

نكته : توجه داشته باشيد كه بايد مقدار Style براي combobox مورد نظرتون رو csOwnerDrawFixe قرار بديد
موفق باشيد .

Felony
سه شنبه 19 خرداد 1388, 20:50 عصر
سلام
براي اين كار بايد رسم Item هاي combobox رو خودتون انجام بديد .
هر combobox رويدادي به نام OnDrawItem داره . كد زير رو در اين رويداد بنويسيد :
کد:
with ComboBox1.Canvas do
begin
Font.Name:=Screen.Fonts.Strings[Index];
FillRect(Rect);
TextOut(Rect.Left,Rect.Top,pchar(Screen.Fonts.Stri ngs[Index]));
end;
نكته : توجه داشته باشيد كه بايد مقدار Style براي combobox مورد نظرتون رو csOwnerDrawFixe قرار بديد
موفق باشيد .

این کار لازم نیست ، کافیه تو رویداد Change شئ ComboBox کد زیر رو بنویسیم :


ComboBox1.Font.Name:=ComboBox1.Text;

shervin farzin
سه شنبه 19 خرداد 1388, 21:38 عصر
سلام

این کار لازم نیست ، کافیه تو رویداد Change شئ ComboBox کد زیر رو بنویسیم
جسارتا خير . با پيشنهاد كه فرموديد ميشه بعد از انتخاب يك Item ، فونت نوشته Combobox رو
تغيير داد . اما با رسم مجدد Item ها به شكلي كه عرض كردم ، زماني كه كاربر DropDown مربوط
به combobox رو باز ميكنه ، در ليست نمايشي علاوه بر نام Font ، تاثيرش روي متن رو هم خواهد
ديد . مثل Font Combobox كه در برنامه Word ملاحظه ميكنيد .
موفق باشيد .

1485159
سه شنبه 19 خرداد 1388, 23:08 عصر
یه از کجا تشخیص بدیم که روی سیستم چه فونت هایی نصبه (منظورم همون فارسی یا اینگلیسیه)؟

1485159
سه شنبه 19 خرداد 1388, 23:13 عصر
یه سوال دیگه:
این کد پایین چیکار میکنه؟؟
ممنون.

FillRect(Rect);
TextOut(Rect.Left,Rect.Top,pchar(Screen.Fonts.Stri ngs[Index]));

Felony
سه شنبه 19 خرداد 1388, 23:37 عصر
سلام

جسارتا خير . با پيشنهاد كه فرموديد ميشه بعد از انتخاب يك Item ، فونت نوشته Combobox رو
تغيير داد . اما با رسم مجدد Item ها به شكلي كه عرض كردم ، زماني كه كاربر DropDown مربوط
به combobox رو باز ميكنه ، در ليست نمايشي علاوه بر نام Font ، تاثيرش روي متن رو هم خواهد
ديد . مثل Font Combobox كه در برنامه Word ملاحظه ميكنيد .
موفق باشيد .

لطفا یه نمونه یا عکس بزراید ، من تست کردم جواب نداد ...

1485159
چهارشنبه 20 خرداد 1388, 00:02 صبح
لطفا یه نمونه یا عکس بزراید ، من تست کردم جواب نداد ...
بابا اونو بیخیال ....
جواب منو بدیدن...

as13851365
چهارشنبه 20 خرداد 1388, 12:20 عصر
لطفا یه نمونه یا عکس بزراید ، من تست کردم جواب نداد ...

نمی دونم شما کجای کار مشکل دارید ولی فایل زیر رو دانلود کنید
اندازه : 150 کیلو

31837




خوب حالا چیکار کنیم که باهمون فونت نشون بده؟
مثل word

خوب از رویدادها استفاده کن و نام فونت رو به هر کامپوننتی که می خواهی اون فونت رو داشته باشه بده .

مثال :

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
memo1.Font.Name:=ComboBox1.Text;
edit1.Font.Name:=ComboBox1.Text;
Button1.Font.Name:=ComboBox1.Text;
end;

1485159
چهارشنبه 20 خرداد 1388, 15:35 عصر
خوب از رویدادها استفاده کن و نام فونت رو به هر کامپوننتی که می خواهی اون فونت رو داشته باشه بده .

حالا مشکل من یه چیز دیگه هست که تو صفحه قبل گفتم....
ممنون.