delphi expertlerinden yardım talep ediyorum. Uzun zamandır richedit icindeki metni iki yana yaslamak istiyordum bir turlu yapamamistim bu isi. Asagidaki kodu internette buldum richedit icindeki metni ikiyana yaslamayı başardım.
Aşağıdaki kod richedit.selectall; ile birlikte çalışıyor. Ben richedit içindeki bazı paragrafların ikiyana hizalanmasını bazılarının ise centerjustify yapılmasını istiyorum. Bu son kısmı uygulayamadım.
Bu konuda yardımcı olabilecek arkadaşım varsa şimdiden teşekkür ederim. Eğer bu komponent haline getirilebilirse bir çok arkadaşın sorunu kökten çözülmüş olacak..
richedit icindeki ilk paragrafı sola, sonraki paragrafı iki yana yaslayacak, sonraki paragrafın ortaya ve son paragrafın sağa yaslayabilecek kücük bir örnek program gönderecek zamanı olan arkadaslara da ayrica mütesekkir olurum.
selamlar.
procedure TJustText.Justify;
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 SelLength = 0 then
begin
cp.cpMin := 0;
cp.cpMax := length(Text);
SendMessage(Handle,EM_EXSETSEL,mZERO,LPARAM(@cp));
end;
L := SendMessageA(Handle,EM_SETTYPOGRAPHYOPTIONS, TO_ADVANCEDTYPOGRAPHY, TO_ADVANCEDTYPOGRAPHY);
if L = 1 then
begin
SendMessageA(Handle, EM_GETTYPOGRAPHYOPTIONS, mZERO, mZERO);
SendMessage(Handle, EM_GETPARAFORMAT, mZERO, LPARAM(@x));
x.dwMask := PFM_ALIGNMENT;
x.wAlignment := PFA_JUSTIFY;
SendMessage(Handle, EM_SETPARAFORMAT, mZERO, lparam(@x));
end;
cp.cpMin := 0;
cp.cpMax := 0;
SendMessage(Handle,EM_EXSETSEL,mZERO,lparam(@cp));
WordWrap := true;
end;
richediti iki yana yaslama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!