Label içine yazdığımız yazının otomatik font boyutunu değiştirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ram.34
Üye
Mesajlar: 2
Kayıt: 25 Ağu 2016 03:39

Label içine yazdığımız yazının otomatik font boyutunu değiştirme

Mesaj gönderen ram.34 »

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
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Label içine yazdığımız yazının otomatik font boyutunu değiştirme

Mesaj gönderen ertank »

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:

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;
Yukarıdaki prosedürü gelen bilgiyi Label içine yazdıktan sonra aşağıdaki gibi kullanabilirsiniz.

Kod: Tümünü seç

  // Label1 içine bilgi yazılan Label adı olarak düzenlenmesi gerekli
  FitTextInLabelWidth(Label1);
ram.34
Üye
Mesajlar: 2
Kayıt: 25 Ağu 2016 03:39

Re: Label içine yazdığımız yazının otomatik font boyutunu değiştirme

Mesaj gönderen ram.34 »

Deniyorum çok teşekkürler.
Cevapla