View Full Version : برنامه نویسی لیبل با تغییر اندازه فونت بصورت اتومات
seyed_farid
جمعه 28 مهر 1396, 11:19 صبح
با سلام
چطور میشه یک لیبل با اندازه ثابت رو پروگرام کرد که بر اساس کلمات کپشن آن طوری سایز فونت آن تغییر کند که کل کلمات را پوشش دهد؟
:تشویق:
یوسف زالی
شنبه 29 مهر 1396, 15:19 عصر
سلام.
از شی Canvas و تابع TextWidth می تونید استفاده کنید.
persia_hrn
یک شنبه 30 مهر 1396, 11:43 صبح
با سلام خدمت جناب مهندس زالی
تابع TextWidth اندازه طول نوشته بر اساس فونت استاندارد ( فونت با سایز 8 ) رو برمیگردونه و اگر فونت لیبل بزرگتر از 8 باشه یه کم ایراد پیدا میکنه .
من از راه دیگه ای وارد شدم که جواب داد :
146868
لطفاً یه نگاهی بندازید ، البته روش ممکنه خیلی بدوی و غیر حرفه ای باشه .
یوسف زالی
یک شنبه 30 مهر 1396, 14:41 عصر
این تابع اندازه ای رو که در فونتش ست کردید برمیگردونه.
کاری که شما کردید در حلقه تعداد آپدیت های زیادی انجام می ده، و برای مثلا 100 عدد لیبل که روی فرم قرار دارند، خیلی طول خواهد کشید.
داخل خود Canvas یک شی فونت وجود داره،
Canvas.Font.Size := 20;
ShowMessage( IntToStr( Canvas.TextWidth('TEST') ));
Canvas.Font.Size := 30;
ShowMessage( IntToStr( Canvas.TextWidth('TEST') ));
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.