Justifier un texte dans un rich edit

cs_chookoo Messages postés 9 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 14 avril 2003 - 9 avril 2003 à 17:40
arckhenstone Messages postés 19 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 29 juillet 2009 - 10 avril 2009 à 09:52
J'ai un programme qui utilise un rich edit et je dois justifier le texte selon différentes options. Je suis capable de justifier à gauche, à droit et au centre, mais est-il possible de justifier un texte des 2 côtés (le texte se justifie selon la marge de gauche et selon la marge de droite)?

Il semble que le type TAlignement dans delphi (j'utilise delphi 5) ne soit pas présent.

4 réponses

DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
10 avril 2003 à 21:13
Ha, je vois un peu comme Word ?
Il me semble que sur les Torry Delphi Page il y a des composants permettant de faire ca et meme inserer des images...

-[!!!]- DeZNiUS -[!!!]-
0
3Rescator Messages postés 5 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 29 avril 2004
23 déc. 2003 à 07:18
FreeRescator
J'ai vu aussi ce composant, il s'appelle TJustifyRichEdit, voici le code de cette vcl :

unit JustifyRichEdit;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
StdCtrls, ComCtrls, RichEdit;

type
TJustifyRichEdit = class(TRichEdit)
private
{ Private declarations }
protected
{ Protected declarations }
public
procedure Justify;
published
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('ZyXEL', [TJustifyRichEdit]);
end;

procedure TJustifyRichEdit.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;

end.

Attention ça ne justifie des deux cotés que ce que l'on charge dedans, bref c'est pas encore le Justify dont je rêvais...
0
fredelem Messages postés 136 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 1 décembre 2022 2
31 janv. 2009 à 19:44
 Voici une réponse possible: 

PROCEDURE Tmainform.Tbn_justifyclick(Sender: Tobject);

CONST

//Wm_user:=400;

//Em_ePFsetsel= (Wm_user + 55);

Em_settypographyoptions= (Wm_user + 202);

Em_gettypographyoptions= (Wm_user + 203);

//To_advancedtypography= 1;

//Mzero= 0;

VAR

Pf:Tparaformat;

L:Longint;

Begin

IF Fupdating THEN EXIT;

WITH Mdi_child.Editor DO

Begin

Pf.Cbsize:= Sizeof(Pf);

L:= Sendmessage(Handle,Em_settypographyoptions,1,1);

IF L= 1 THEN

Begin

Sendmessagea(Handle, Em_gettypographyoptions, 0, 0);

Sendmessage(Handle, Em_getparaformat, 0, Lparam(@Pf));

Pf.Dwmask:= Pfm_alignment;

Pf.Walignment:= Pfa_justify;

Sendmessage(Handle, Em_setparaformat, 0, Lparam(@Pf));

End;

End;

///////////////////U_undo.Savetoundobuffer(Form3.Editor);

End;

                         Cordialement

                                           Fredelem
0
arckhenstone Messages postés 19 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 29 juillet 2009
10 avril 2009 à 09:52
bonjour, moi j'aimerai arriver à centrer le texte qui s'affiche DANS un edit, est ce possible si oui comment ?

Pour afficher mon edit j'utilise cette commande :

Nom.text:=(' ce que je veux écrire et centrer ')

Que devrais je rajouter pour que le texte à l'intérieur de ma parenthèse soit centré ?

Merci d'avance.
0
Rejoignez-nous