PDA

View Full Version : تغییر دینامیک سایز لیبل در یک کلید



علی رضائی
پنج شنبه 18 مرداد 1386, 06:29 صبح
با سلام
روی یک فرم کلیدی هست که لیبل آن کلید از دیتابیس دریافت می شود و کاربران بنابر نیاز خود می توانند لیبل را در دیتابیس تغییر دهند.

مثل این تصویر که کلیدی است با لیبل اقوام و دوستان


http://www.yazdyar.com/images/qsinweb/qsbut1.jpg


حالا اگر طول لیبل مورد نظر کاربر بیش از طول کلید باشد مشکل ایجاد می شود.


مثل این تصویر که کلیدی است با لیبل شرکتهای نرم افزاری


http://www.yazdyar.com/images/qsinweb/qsbut2.jpg

همان طور که ملاحظه می کنید ابتدا و انتهای لیبل مشاهده نمی شود.


- چگونه می توان، سایز فونت را نسبت به سایز ثابت کلید، تغییر داد؟

پیشاپیش از راهنمائی دوستان تشکر می کنم.

mzjahromi
پنج شنبه 18 مرداد 1386, 07:04 صبح
سایز فونت رو تغییر داد یا سایز کلید رو؟
این کد تا حدودی کاری رو انجام میده که شما میخواهید.
ولی به نظرم شما باید بسته به شرایطتون روشتون رو تغییر بدید. چون فونت از یه حدی کوچکتر نمیشه. و فکر نمیکنم مشکلتون با این روش حل بشه

Canvas.Font:=Button1.Font;
while (Canvas.Font.Size>6)and(Canvas.TextWidth(Edit1.Text)>Button1.Width) do
Begin
Button1.Font.Size:=Button1.Font.Size-1;
Canvas.Font.Size:=Canvas.Font.Size-1;
End;
Button1.Caption:=Edit1.Text;

علی رضائی
پنج شنبه 18 مرداد 1386, 07:50 صبح
کلیدها ثابت و لیبلها متغییر هستند.
پس در پاسخ به سوال شما باید بگویم اندازه فونت باید تغییر کند

اگر بشود درصورت بزرگ بودن لیبل اندازه فونت را تقریبا 3/1 کمتر اندازه از لیبل تبدیل کرد. مناسب است. بیش از آن هم دیگر واقعا نیاز نیست و کاربران باید این مطلب را بدانند که در یک لیبل جمله نویسی نکنند.
ضمنا منظور از 6 در (Canvas.Font.Size>6) چیست؟
من از راهنمائی قبلی آقای mzjahromi (http://barnamenevis.org/forum/member.php?u=13276) تشکر می کنم.

mzjahromi
پنج شنبه 18 مرداد 1386, 12:13 عصر
من اون خط رو گذاشتم که
1- فونت از یک حدی کوچکتر نشود(6)
2- مطمئن باشیم برنامه توی حلقه گیر نمیکنه

علی رضائی
پنج شنبه 18 مرداد 1386, 12:54 عصر
از راهنمائی شما کمال تشکر و قدردانی را دارم