Merhaba arkadaşlar
Benim projemde bir bilgisayarda, edit e girilen yazıyı, diğer bir bilgisayarda label a yazdırıyorum, soket vasıtasıyla.
Sorunum ise label a gelen yazı eğer uzunsa (TELLİOĞULLARI) gibi başındaki ve sonundaki harflerimin gözükmüyor olması. Bu arada font boyutu 150, form boyutu 768x1024.
Label caption na gelen yazının font u otomatik düşebilir mi ? Sığmazsa font u 130 a alsın gibi birşey.
Şimdiden teşekkürler
Label içine yazdığımız yazının otomatik font boyutunu değiştirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Label içine yazdığımız yazının otomatik font boyutunu değiştirme
Merhaba,
İstenilen şey mümkün. Ancak standart TLabel bunu otomatik yapmaz. Kod yazmak gerekli. Kod yazmadan olmaz mı diye soracak olursak TLabel yerine TMemo nesnesi koyup, WrapText özelliğini kapatıp, ScrollBars özelliğini ssBoth yapıp fontu istediğiniz boyuta getirebilirsiniz. Sığmayan kısmı scroll bar kısmını fare ile kaydırarak görebilirsiniz.
Kod ile nasıl olur derseniz:
Yukarıdaki prosedürü gelen bilgiyi Label içine yazdıktan sonra aşağıdaki gibi kullanabilirsiniz.
İstenilen şey mümkün. Ancak standart TLabel bunu otomatik yapmaz. Kod yazmak gerekli. Kod yazmadan olmaz mı diye soracak olursak TLabel yerine TMemo nesnesi koyup, WrapText özelliğini kapatıp, ScrollBars özelliğini ssBoth yapıp fontu istediğiniz boyuta getirebilirsiniz. Sığmayan kısmı scroll bar kısmını fare ile kaydırarak görebilirsiniz.
Kod ile nasıl olur derseniz:
Kod: Tümünü seç
procedure FitTextInLabelWidth(var ALabel: TLabel);
const
MinFontSize = 6;
var
Width: Integer;
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create();
try
Bitmap.Canvas.Font.Assign(ALabel.Font);
Width := Bitmap.Canvas.TextWidth(ALabel.Caption);
while (Width > ALabel.Width) and (Bitmap.Canvas.Font.Size > MinFontSize) do
begin
Bitmap.Canvas.Font.Size := Bitmap.Canvas.Font.Size - 1;
Width := Bitmap.Canvas.TextWidth(ALabel.Caption);
end;
ALabel.Font.Size := Bitmap.Canvas.Font.Size;
finally
Bitmap.Free();
end;
end;
Kod: Tümünü seç
// Label1 içine bilgi yazılan Label adı olarak düzenlenmesi gerekli
FitTextInLabelWidth(Label1);
Re: Label içine yazdığımız yazının otomatik font boyutunu değiştirme
Deniyorum çok teşekkürler.