Canvas.Texout ile yazılan birimi sağa yaslamak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Canvas.Texout ile yazılan birimi sağa yaslamak.

Mesaj gönderen Biltes »

Arkadaşlar öncelikle günaydın;

Sorunum şu,

Kod: Tümünü seç

      Canvas.TextOut(325,105+(20*i),FormatCurr(',0.00',dxCurrencyEdit1.Value));
gibi bir para birimini fişin sağ tarafına yazdırıyorum ama istediğim tarzda deil bu tarz fişin sağ tarafından çıkması gereken para birimlerini sağa yaslayarak nasıl yazdırabilirim.

Yardımlarınız için şimdiden çok tşk ederim.
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
cihan
Üye
Mesajlar: 65
Kayıt: 02 Ağu 2005 03:34

Re: Canvas.Texout ile yazılan birimi sağa yaslamak.

Mesaj gönderen cihan »

Biltes yazdı:Arkadaşlar öncelikle günaydın;

Sorunum şu,

Kod: Tümünü seç

      Canvas.TextOut(325,105+(20*i),FormatCurr(',0.00',dxCurrencyEdit1.Value));
gibi bir para birimini fişin sağ tarafına yazdırıyorum ama istediğim tarzda deil bu tarz fişin sağ tarafından çıkması gereken para birimlerini sağa yaslayarak nasıl yazdırabilirim.

Yardımlarınız için şimdiden çok tşk ederim.

Kod: Tümünü seç

canvas.Rectangle(9,9,60,30);/*yanaştığını görmek için çerçeve ciziyorum*/
settextalign(canvas.Handle,TA_RIGHT);
TextOut(canvas.Handle,50,10,pansichar('126,35'),6)
burda 6 karakter uzunluğu
burda 50 karakter sayısı+karakter genişliği
sanırım çalışır
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam verdiğiniz kod ok onu çalıştırdım ama şöyle bir sorun var, eğer sondaki rakamı 6 değil de 10 yaparsanız bu sefer parabimini 10'a tamamlamak için sonuna (l) gibi bir işaret atıyor bunu nasıl yok edebiliriz.

İlginiz için çok tşk ederim
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
cihan
Üye
Mesajlar: 65
Kayıt: 02 Ağu 2005 03:34

Mesaj gönderen cihan »

Biltes yazdı:Hocam verdiğiniz kod ok onu çalıştırdım ama şöyle bir sorun var, eğer sondaki rakamı 6 değil de 10 yaparsanız bu sefer parabimini 10'a tamamlamak için sonuna (l) gibi bir işaret atıyor bunu nasıl yok edebiliriz.

İlginiz için çok tşk ederim

pansichar ('126,35')içindeki değerinin length bir değişkene al ve 6 yerine o değişkeni kullan
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam mümkünse bir örnek yazabilrmisiniz? Tam olarak bu fonksiyonu kullanmayı bilmiyorum. Örnekler var onları inceledim ama istediğim gibi mantığını oturtamadım.

Çok tşk ederim...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Kod: Tümünü seç

YazılacakYaziGenisligi:=Canvas.TextWidth('126,35');
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Verilmş kodu modifiye ederek şöyle bir kurgu hazırladım her şey dinamik olsun diye. Sen sadece rakamları değiştir otomatik yer değişikliği olur..

Kod: Tümünü seç

Const
  Soldan        =  9;
  Tepeden       =  9;
  AlanGenislik  = 100;
  AlanYukseklik =  20;
Var
  Tutar      : Double;
begin
  Tutar      := 126.35;
  //Yanaştığını görmek için çizilecek çerçeve...
  Canvas.Rectangle( Soldan,                 Tepeden,
                    Soldan + AlanGenislik,  Tepeden + AlanYukseklik);
  SetTextAlign( Canvas.Handle, TA_RIGHT );
  TextOut( Canvas.Handle, Soldan + AlanGenislik-3,
           Tepeden + ((AlanYukseklik - Canvas.TextHeight(FloatToStr(Tutar))) div 2),
           pAnsiChar(FloatToStr(Tutar)), Length(FloatToStr(Tutar))); // -3 yan çizgiye değmesin diye, dikey ise otomatik ortalanır.
end;
Resim
Resim ....Resim
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam hızır gibisiniz yemin ederim. Tam istediğim gibi oldlu olay elleriniz, klavyeniz dert görmesin.

İlgileriniz için çok tşk ediyorum.
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Cevapla