Delphide düşey yazı yazdırmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Delphide düşey yazı yazdırmak

Mesaj gönderen izmirlikemal »

Delphi 2006 nın kod satırında label1.caption:='Ahmet' şeklinde yazdığımda; Program çalıştığında
A
h
m
e
t
şeklinde yazmasını istiyorum.

Nasıl yapabilirim? Yanıtlayacak arkadaşlarıma teşekkür ederim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Delphide düşey yazı yazdırmak

Mesaj gönderen mrmarman »

Basit düşünerek :
(1) Label'in Width değerini 1 harf sığacak kadar ver.
(2) Yazacağın kelimeler için her harfi birer boşluk vererek yaz.
(3) Label'in AutoSize özelliğini FALSE yap
(4) Label'in WordWrap özelliğini TRUE yap


Daha komplike düşünmek istersen sana CANVAS TEXTOUT olayını tarif ederim.
Resim
Resim ....Resim
izmirlikemal
Üye
Mesajlar: 155
Kayıt: 10 Oca 2014 01:08
Konum: izmir/Buca

Re: Delphide düşey yazı yazdırmak

Mesaj gönderen izmirlikemal »

Mustafa Bey bu yanıtınız aklıma gelmemişti. Çok teşekkür ederim.
Canvas Textout olayınıda tariflersenin. Öğrenmiş olacağım için sevinirim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Delphide düşey yazı yazdırmak

Mesaj gönderen mrmarman »

- Forumda bir sürü örneği olmakla birlikte, buna da bir örnekle açıklamış olalım.. :idea:

Kod: Tümünü seç

Procedure DikeyYazi( Image:TImage; strYazi:String; iFontSize:Integer );
Var
  Bitmap  : TBitmap;
  Rect    : TRect;
  i       : Integer;
begin
  Bitmap := TBitmap.Create;
    Bitmap.Canvas.Font.Size   := iFontSize;
    Rect.Left    := 0;
    Rect.Top     := 0;
    Rect.Right   := Bitmap.Canvas.TextWidth( 'W' );
    Rect.Bottom  := Bitmap.Canvas.TextHeight( 'H' ) * Length(strYazi);
    Bitmap.Width := Rect.Right;
    Bitmap.Height:= Rect.Bottom;

    Bitmap.Canvas.Brush.Style := bsSolid;
    Bitmap.Canvas.Brush.Color := clYellow;
    Bitmap.Canvas.FillRect( Bitmap.Canvas.ClipRect );
    Bitmap.Canvas.Brush.Style := bsClear;

    for i := 1 to Length(strYazi)
      do Bitmap.Canvas.TextOut( 0, ( (i-1)* Bitmap.Canvas.TextHeight( 'H' ) ), strYazi[i]);
    Image.Width   := Bitmap.Width;
    Image.Height  := Bitmap.Height;
    Image.Picture.Bitmap.Assign(Bitmap);
  Bitmap.Free;
end;
Kullanımı :

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  DikeyYazi( Image1, 'Muharrem ARMAN', 16);
end;
Resim
Resim ....Resim
Cevapla