richedit iki yana yaslandı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
youutek
Üye
Mesajlar: 33
Kayıt: 15 Kas 2005 05:09

richedit iki yana yaslandı

Mesaj gönderen youutek »

arkadaşlar rich edit i iki yana yasladım fakat yazıcıdan çıktı alırken yine normal satır lar çıkıyor bunu engellemenin bi yolu varmı


teşekkür ederimm
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

iki yana yaslamayı nasıl yaptınız kodu gönderebilirmisiniz.
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@youutek

- asıl kod isimli mesajınızın başlığını daha anlamlı bir başlık ile değiştiriniz. Örneğin "Richedit ile iki yana yaslama nasıl yapılır ?"

- Ayrıca sorunuza aynı başlık altında devam ediniz. Mesaj kirliliği oluyor. Çözümü paylaşmak isteyenler için zorluk oluşuyor.

@mepc çalışan kod aşağıda... Bunu bir kere çalıştırdıktan sora ilgili TRichEdit içine yazı yazıldıkça yeni eklenenler de sağa sola yanaşık yazılmaya devam ediliyor.

Kod: Tümünü seç

// Uses Richedit
Procedure IkiYanaYasla(Nesne: TRichEdit);
const
  WM_USER                 = $400;
  EM_EXSETSEL             = (WM_USER + 55);
  EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202);
  EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203);
  TO_ADVANCEDTYPOGRAPHY   = $1;
  mZERO                   = $0;
var
  x : tparaformat;
  L : LongInt;
  cp: charrange;
begin
  x.cbSize := sizeof(x);
  if Nesne.SelLength = 0 then
  begin
    cp.cpMin := 0;
    cp.cpMax := length(Nesne.Text);
    SendMessage(Nesne.Handle, EM_EXSETSEL, mZERO, LPARAM(@cp));
  end;
  L := SendMessageA(Nesne.Handle, EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY);
  if L = 1 then
  begin
    SendMessageA(Nesne.Handle, EM_GETTYPOGRAPHYOPTIONS, mZERO, mZERO);
    SendMessage(Nesne.Handle, EM_GETPARAFORMAT, mZERO, LPARAM(@x));
    x.dwMask     := PFM_ALIGNMENT;
    x.wAlignment := PFA_JUSTIFY;
    SendMessage(Nesne.Handle, EM_SETPARAFORMAT, mZERO, lparam(@x));
  end;
  cp.cpMin := 0;
  cp.cpMax := 0;
  SendMessage(Nesne.Handle, EM_EXSETSEL, mZERO, lparam(@cp));
  Nesne.WordWrap := true;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

Muharrem bey

Uzun süre uğraşıp çözemediğim bir konuydu.

Teşekkür ederim. Elinize sağlık
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

İki yana yaslamayı yaptım ancak richediti editör şeklinde kullandırıyorum. Gönderdiğiniz kodu kullandıktan sonra çalışma anında sağa, sola hizalama ve ortalama yapamıyorum. Bu fonksiyonu gerektiğinde nasıl devre dışı bırakabilirim (çalışma anında)
Bilgi paylaşıldıkça güzeldir.
fatihbarut

Teşekkür

Mesaj gönderen fatihbarut »

Saol gerçekten çok makbule geçti
fatihbarut

bir de

Mesaj gönderen fatihbarut »

Valla bi daha teşekkür ederim şimdi kodu da denedim ve bi daha makbule geçti
bir de Quick report kullan kesin çözüm sağlıyor ben senin kodu kullanarak denedim. Çok güzel...
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

Bu kadar hazırcılık çok olacak biliyorum. Muharrem ustam baya bir lazım olan işi hazırlayıp pişirip sunmuş. Fakat ben çalıştıramadım. Bu kod ile richedit içine yazılan yazı msword gibi sağa solamı yaslanıyor yoksa başka bir işlem mi yapıyor. Büyük ihtimalle yukarıda verilen kodu kullanamadım lazım olduğu için forumda arayıpta bulduğum hazineyi kullanamamak çok kötü.

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, richedit;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation



{$R *.dfm}

Procedure IkiYanaYasla(Nesne: TRichEdit); 
const
  WM_USER                 = $400; 
  EM_EXSETSEL             = (WM_USER + 55); 
  EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202); 
  EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203);
  TO_ADVANCEDTYPOGRAPHY   = $1; 
  mZERO                   = $0; 
var 
  x : tparaformat;
  L : LongInt; 
  cp: charrange; 
begin 
  x.cbSize := sizeof(x);
  if Nesne.SelLength = 0 then 
  begin 
    cp.cpMin := 0; 
    cp.cpMax := length(Nesne.Text);
    SendMessage(Nesne.Handle, EM_EXSETSEL, mZERO, LPARAM(@cp)); 
  end; 
  L := SendMessageA(Nesne.Handle, EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY); 
  if L = 1 then
  begin 
    SendMessageA(Nesne.Handle, EM_GETTYPOGRAPHYOPTIONS, mZERO, mZERO); 
    SendMessage(Nesne.Handle, EM_GETPARAFORMAT, mZERO, LPARAM(@x)); 
    x.dwMask     := PFM_ALIGNMENT;
    x.wAlignment := PFA_JUSTIFY; 
    SendMessage(Nesne.Handle, EM_SETPARAFORMAT, mZERO, lparam(@x)); 
  end; 
  cp.cpMin := 0;
  cp.cpMax := 0; 
  SendMessage(Nesne.Handle, EM_EXSETSEL, mZERO, lparam(@cp)); 
  Nesne.WordWrap := true; 
end;

end.
unitim bu şekil deneme amaçlı. kullanım hatası var sanırım ama kullanım şeklini öğretirseniz çok memnun olacağım zira şu sıra baya bi lazım bu word gibi iki yana yaslama işi. düz yazı yazdığımız raporda lazım. aksi takdirde çok çikin görünüyor yazı.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Pimapen_Nuri
Üye
Mesajlar: 10
Kayıt: 10 Nis 2006 10:16
Konum: İZMİR

Quickreport.Qrrichtex

Mesaj gönderen Pimapen_Nuri »

İya çalışmalar arkadaşlar
Yukarıdaki kodlarla richedit içeriğini iki yana yasladık, ancak quickreport tan çıktı alırken iki yana yaslı olarak çıktı alamıyorum. Yukarıdaki kodların devamınde ne gibi bi işlem yapmamız lazım ki çıktıyıda düzgün alabilelim.
Delphi Öğrenmenin yolu nedir.?
drbastem
Üye
Mesajlar: 15
Kayıt: 03 Oca 2008 10:17
İletişim:

Mesaj gönderen drbastem »

bu konuda komponet var. http://www.bastem.com.tr/Justifyrichedit.rar
ayrıca quickreportta ise parrentRichEdit ise form1.editor1 yazarsanız iki yana yaslanmış olarak yazar.
selamlar
Cevapla