Edition d'un QrRichText (texte incomplet et alignement)

Résolu
zygorr Messages postés 5 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 13 décembre 2004 - 10 déc. 2004 à 09:51
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 14 déc. 2004 à 22:33
Bonjour,

J'ai un petit soucis avec le composant QrRichText.
Je le charge à partir d'un fichier (QrRichText1.Lines.LoadFromFile(fic)) mais il ne m'édite que les 2/3 du texte, alors que quand j'inspecte la valeur QrRichText1.Lines.Text il y a bien tout le fichier. Le composant fait la taille d'une feuille A4.
Aussi, j'aurais voulu pouvoir justifier le texte (alignement gauche et droite en même temps) comme dans Word. J'ai bien cherché un peu partout sur le net, mais rien trouvé. Si quelqu'un a la soluc.

Merci ;-)

11 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
10 déc. 2004 à 20:58
Le problème de
RichEdit1.Paragraph.Numbering := TNumberingStyle(True);
, qui ne se pose pas avec des ActionList, c'est que quand la puce est mise, on ne peut pas l'enlever...
Bien sur, tu me dira qu'il faut faire
RichEdit1.Paragraph.Numbering := TNumberingStyleFalse);
, mais comment savoir, là ou tu cliques (n'importe où dans le RichEdit), s'il y a une puce ou pas, pas une méthode SIMPLE ?!
;)

Pour
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsBold];
, comment savoir si le texte est déjà en gras... et comment faire pour enlever SIMPLEMENT ?

Non, vraiment, l'usage d'un ActionList est vraiment préférable... Tu n'as même pas besoin d'une ligne de code !

Chez moi, il y a bien la catégorie Format quand tu cliques droit dans la colonne de droite... Cherche bien.

RichEdit1.Paragraph.Alignment := taRightJustify;
aligne le texte à droite, mais ne le justifie pas. Effectivement, le nom est trompeur, mais Right se remarque quand même...

Par contre, je pense que la limitation est impossible :sad)

@+
Bonne Prog'
Nico

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)
3
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
11 déc. 2004 à 12:02
En réponse à "comment savoir, là ou tu cliques (n'importe où dans le RichEdit), s'il y a une puce ou pas, pas une méthode SIMPLE ?!" :
if RichEdit1.Paragraph.Numbering =  nsBullet then
begin
  // code...
end;


et pour " comment savoir si le texte est déjà en gras... et comment faire pour enlever SIMPLEMENT ? " :
with RichEdit1.SelAttributes do
  if fsBold in Style then
  begin
    Style : = Style - [fsBold];
  end;

(La propriété Style est du type ensemble)

RightJustify n'est pas "trompeur". Il s'agit bien d'une justification à droite. Ce que souhaite zygorr, c'est une justification à droite ET à gauche. Pour obtenir une telle fonctionnalité, il faudra s'orienter vers un composant comme TRichView. Hélas, ce n'est pas un composant gratuit. Mais si les avantages qu'il procure répondent pleinement à tes souhaits, il n'est pas cher (je veux dire pour un usage professionnel :) ).

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
3
zygorr Messages postés 5 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 13 décembre 2004
13 déc. 2004 à 14:22
Alors j'ai essayé sur un autre poste, et là surprise, il m'édite la lettre entièrement. Je ne vois pas pourquoi, mais le principal c'est que ca marche chez le client.
Pour la hauteur du texte, à prioris c'est pas possible.

Le problème est donc résolu.

Merci beaucoup pour votre aide.

Chao ;)
3
zygorr Messages postés 5 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 13 décembre 2004
10 déc. 2004 à 14:11
Hi ni69, et merci de t'intérresser à mon prb.

Le hic, c'est que le composant TJustifyRichEdit ne justifie pas des 2 cotés en même temps. Et il ne justifie pas non plus quand le texte est chargé. Bref, une utilisation un peu restrainte.

Et 2 autres questions pour le RichEdit, 2 :
- comment ajouter une puce en début de ligne?
- comment limiter la zone de saisie au format A4 par ex. Pour la droite, on peut utiliser la largeur du RichEdit et mettre WordWrap à True, mais pour la hauteur, il n'y a pas de limite.

Je vous assure que ce n'est pas de la mauvaise volonté, j'ai vraiment cherché avant de demander.En fait ce composant est un peu basique, on ne peut pas en faire grand chose, dommage.

Merci à vous...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
10 déc. 2004 à 14:31
Pour faciliter la gestion des RichEdit, il est utile d'avoir une ActionList dans ton application.

Je m'explique :
Pose un compo ActionList (dans l'onglet 'Standard') sur ta form.
Ensuite, Edite les actions de l'ActionList en double-cliquant dessus
Dans la colonne Actions, fais un clic droit, sélectionne 'Nouvelle action Standard', et là tu trouves un choix d'actions relatives à ton application. Sélectionne 'TRichEditBullets' dans 'Format'. Fais OK pour l'ajouter.

Ensuite, dans la propriété 'Action' d'un TButton, mets 'RichEditBullets1' (le nom de l'action définie juste avant).
A partir de maintenant, dès que tu cliqueras sur le bouton, une puce s'insèrera dans le RichEdit.

Par contre, je ne vois pas comment limiter la hauteur.... la seule chose que l'on puisse limiter, c'est le nombre de caractères, mais cela n'a pas de grande utilité ici....

@+
Bonne Prog'
Nico

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)
0
zygorr Messages postés 5 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 13 décembre 2004
10 déc. 2004 à 17:01
Hi!

J'ai essayé ta teknik, mais je n'ai pas 'Format' dans les actions standards. Mais j'ai trouvé autre chose, c'est simple:
- les puces :
RichEdit1.Paragraph.Numbering := TNumberingStyle(True);

- l'alignement :
RichEdit1.Paragraph.Alignment := taRightJustify;

(mais il n'y a pas de justification :-( )
- le gras :
RichEdit1.SelAttributes.Style := RichEdit1.SelAttributes.Style + [fsBold];


Mais le problème de la limitation en hauteur est tjrs posé, ainsi que le QrRichText qui ne s'édite pas en entier !!

Merci !! :)
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
11 déc. 2004 à 13:18
Je suis entièrement d'accord avec toi DelphiProg, mais les ActionList restent plus pratiques, il n'y a en effet pas de code à taper... :)

@+
Bonne Prog'
Nico
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
11 déc. 2004 à 13:27
D'accord avec toi Ni69, mais les TActionList dont tu parles plus haut (TRichEdit*) ne sont apparues qu'avec Delphi 6 et zygorr ne nous a pas précisé quelle version de Delphi il utilisait.

May Delphi be with you
0
zygorr Messages postés 5 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 13 décembre 2004
13 déc. 2004 à 09:59
Bonjour à tous,

C'est vrai, j'ai oublié de préciser que je suis sous D4. La liste des actions est limitée aux catégories Dataset, Edition et Fenêtre. J'ai donc utilisé la méthode de Delphiprog.

Est-ce qu'il existe un composant semblable au QrRichText?
Je voudrai le remplacer, pcq mon plus gros problème reste quand même celui-ci. Je voudrai éditer des lettres, mais s'il manque une partie du texte, c pas trop la peine de continuer.
A prioris, c'est un prb du composant pcq quand j'inspecte la valeur QrRichText1.Lines.Text, le texte est entier. Je ne pense pas être le premier à renconter ce prb.
Hellllllp!

Bonne journée, codez bien !!
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
13 déc. 2004 à 15:29
Effectivement Delphiprog, je n'avais pas pensé à ceci. Moi qui n'ai eu que delphi6 depuis le début, je ne pouvais pas le prévoir...
Merci de ces précisions :)

@+
Bonne Prog'
Nico
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
14 déc. 2004 à 22:33
zygorr : pourrais-tu regarder les versions des DLL Riched*.dll sur ton poste et sur le poste du client et nous dire quoi ?
Cela nous aiderait à comprendre les raisons de ces différences de fonctionnement.
May Delphi be with you
0
Rejoignez-nous