Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1441 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [BORLAND c++] utilisation de TRichedit ENCORE des prob[RESOLU NA!!]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BORLAND c++] utilisation de TRichedit ENCORE des prob[RESOLU NA!!]

n°212682
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 10:41:05  profilanswer
 

Moute biene ..
 
Dans un Form g deux controle, un TRichEdit et un TMemo.
L'utilisateur tape une serie de trucs dans le TMemo. Cette chaine peut ou pas contenir des caractéres d'echappement du style \red, \bold.
 
A chaque fois que le Memo est modifié, le RichEdit doit afficher le contenu du Memo en enlevant les \??? (facile) et en les remplacant par la mise en forme adéquat.
 
Ex :
 
Memo = Ce texte est \red rouge.
RichEdit = ce texte est rouge.
 
Comment donc specifier a quel endroit du richedit effectuer le changement d'attribut ??
 
merci


Message édité par Joel F le 26-09-2002 à 08:48:40
mood
Publicité
Posté le 12-09-2002 à 10:41:05  profilanswer
 

n°212705
LetoII
Le dormeur doit se réveiller
Posté le 12-09-2002 à 11:00:24  profilanswer
 

T'as la méthode bourrin: tu selectionne le texte voulu et tu change ses attributs (pptés: SelAttributes SelLength SelStart)


---------------
Le Tyran
n°212708
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:01:22  profilanswer
 

Certes y a pas fin++ ?

n°212712
LetoII
Le dormeur doit se réveiller
Posté le 12-09-2002 à 11:02:05  profilanswer
 

Joel F a écrit a écrit :

Certes y a pas fin++ ?




 
J'ai pas vu en tout cas


---------------
Le Tyran
n°212713
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:04:08  profilanswer
 

Donc en clair je parse ma chaine Memo a chque fois que je toruve un \????? je l'enleve, recup la position du curseur, va juska la fin du mot et fait SetAttributes ...
 
1. Recupérer la pos du curseur ??
2. Chercher la fin d'un mot ??
 
Bou ca va etre chiant ...

n°212714
taureau
Posté le 12-09-2002 à 11:04:16  profilanswer
 

tu peux faire une moulinette pour transformer directement le texte de ton memo en rtf puis le charger dans le TRichEdit...
 
c'est bourrin ? oui mais ça fait plus classe  :D

n°212717
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:05:08  profilanswer
 

Ah intéressant, des précisions sur le format rtf s'impose donc.
 
c'est le truc avec {{rtf\ansi} etc .... ?

n°212726
taureau
Posté le 12-09-2002 à 11:10:40  profilanswer
 

oui ... le plus simple serait que tu te fasses toi meme un petit modèle sous word ou autre (surtout pour qu'il te cré la table des couleurs donc tape un texte avec toute les couleurs et les fontes souhaités)

n°212727
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:12:37  profilanswer
 

Pas con ...
 
Ensuite je fais juste un search & replace de mes \red pour les remplacer par {{color=red}}
 
Je dois sauver ca sur disk ou je peut le stocker dans une AnsiString et le balancer au controle direct ??

n°212732
taureau
Posté le 12-09-2002 à 11:16:23  profilanswer
 

non une fois que tu l'auras sous forme de chaine tu pourras le charger directement par la propriété lines->text  
 
et pour la couleur cela sera de la forme :
 
bla bla {\cb1 texte couleur1} blabla {\cb2 couleur2}

mood
Publicité
Posté le 12-09-2002 à 11:16:23  profilanswer
 

n°212736
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:18:29  profilanswer
 

En fait ca a cette geule :
 

Code :
  1. {\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1036\deflangfe1036
  2. {\colortbl;
  3. \red0\green0\blue0;
  4. \red0\green0\blue255;
  5. \red0\green255\blue255;
  6. \red0\green255\blue0;
  7. \red255\green0\blue255;
  8. \red255\green150\blue0;
  9. \red255\green255\blue0;
  10. }
  11. {\cf1 Couleur}
  12. {\cf2 Couleur}
  13. {\cf3 Couleur}
  14. {\cf4 Couleur}
  15. {\cf5 Couleur}
  16. {\cf6 Couleur}
  17. {\cf7 Couleur}
  18. }


 
Je dois laisser le {{rtf/ ?? , la colortbl ???

n°212748
taureau
Posté le 12-09-2002 à 11:23:21  profilanswer
 

oui car la commande \cf utilise un index sur la table des couleurs donc tu laisses tout et tu te fais un modèle comme ça
 

{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1036\deflangfe1036  
 
{\colortbl;  
\red0\green0\blue0;  
\red0\green0\blue255;  
\red0\green255\blue255;  
\red0\green255\blue0;  
\red255\green0\blue255;  
\red255\green150\blue0;  
\red255\green255\blue0;  
}  
 
$TEXTE$
 
}


 
tu prépares le contenu de ton memo en insérant les balises {\cfx } où il faut puis tu l'injectes à la place de $TEXTE$ das ton modèle et hop tu charges dans ton TRichEdit

n°212750
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:24:21  profilanswer
 

Le modéle je peux le foutre en ressources ???

n°212753
taureau
Posté le 12-09-2002 à 11:26:39  profilanswer
 

oui mais tu peux aussi le définir en dur dans ton code sous forme d'une constante, ou plus rafiner permettre de le charger depuis le disque pour offrir le choix aux utilisateurs ...

n°212755
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:27:12  profilanswer
 

En fait le choix il l'ont pas donc ...
 
Donc vo mieux une bosse grosse constante qu'une ressource ?

n°212760
taureau
Posté le 12-09-2002 à 11:32:25  profilanswer
 

question performance ? je sais pas mais je dirais que c'est plus simple de définir une constante  :D  
 
en plus pendant la conception tu pourras la modifier plus rapidement mais bon l'embarquer sous forme de ressource ne vas on plus te demander trop de travail donc ... c toi choix  :D

n°212762
Joel F
Real men use unique_ptr
Posté le 12-09-2002 à 11:33:09  profilanswer
 

OKI merci, je commencer a me faire peur avec le sel start etc  
...

n°212766
LetoII
Le dormeur doit se réveiller
Posté le 12-09-2002 à 11:34:52  profilanswer
 

Ce qu'il y a de bien avec un resouce c que tu peux modifier le chose sans recompiler.


---------------
Le Tyran
n°212772
taureau
Posté le 12-09-2002 à 11:37:28  profilanswer
 

oui c vrai...enfin moi je travaille sous delphi donc la compil est beaucoup beaucoup plus rapide qu'en c++  :D

n°212774
taureau
Posté le 12-09-2002 à 11:40:46  profilanswer
 

au fait sous delphi on peut remplacer const par un :
 
resourcestring
CreateError = 'Cannot create file %s';  
 
et cela cré automatiquement des chaines de ressources ...

n°219209
Joel F
Real men use unique_ptr
Posté le 24-09-2002 à 09:33:05  profilanswer
 

Bon alors ct presk ca ...
 
sous 2000 sa roxx, mais ss 98 :
 
http://paul.siramy.free.fr/_divers/tbledit01.gif
 
donc bon ...
La fanetre en bas a droite DEVRAIT contenir du texte en couleur etc ... donc ... c pas trop ca
 
Le tout a été compilé sans RTL dynamique et sans paquets d'exec.
 
L'exe original est ici :
http://iceman.maxcom.nl/Joel/Transfert/tbledit.zip

n°219292
taureau
Posté le 24-09-2002 à 11:06:44  profilanswer
 

avant de charger ton texte rtf force la propriété PlainText à false, il y a peut-etre une différence dans riched32.dll entre 2000 et 98...
 
autre chose qui n'a rien à voir mais lorsque tu changes de couleur tu ne supprimes pas l'ancien code couleur donc tu te retrouve avec des trucs du genre
 
{\cf1 } {\cf11 Enter your string here.}
 
ici {\cf1 } est inutile  

n°219301
Joel F
Real men use unique_ptr
Posté le 24-09-2002 à 11:25:03  profilanswer
 

ok je v essayer ca.
pour les codes redondants bon ben on fait avec, c juste une preview donc bon ...

n°219821
Joel F
Real men use unique_ptr
Posté le 25-09-2002 à 10:40:22  profilanswer
 

ben le truc c ke le plainText etait deja a false ...  :(  
Dois-je le forcer a flase avant chaque changements de la propriétés Text ??

n°219824
taureau
Posté le 25-09-2002 à 10:46:38  profilanswer
 

normalement non...mais là sous windows9x l'affichage correspont typiquement à un TRichEdit avec PlainText=true d'ou mon post...
 
donc tu peux toujours essayer de forcer à false pour voir si le bug ne vient pas de là c toujours possible...
 

n°219826
taureau
Posté le 25-09-2002 à 10:54:40  profilanswer
 

a la limite si tu te sers du TRichEdit que pour l'affichage tu peux aussi bien utiliser TWebBrowser et utiliser un modèle en l'html et si tu ne veux pas utiliser IE, alors va voir sur http://www.pbear.com/ et tu auras un composant gratuit pour afficher des pages html
 
sur http://www.tmssoftware.com/ tu trouveras des compos pour un affichage minimal html (parfait pour toi) mais la les compos sont payant si tu commercialises ton soft ...


Message édité par taureau le 25-09-2002 à 10:56:54
n°219901
Joel F
Real men use unique_ptr
Posté le 25-09-2002 à 13:32:19  profilanswer
 

Je vais essayer. L'appli est un freewrae donc normalement ca devrait allez.

n°220361
Joel F
Real men use unique_ptr
Posté le 26-09-2002 à 08:48:25  profilanswer
 

Ben voila, Taureau t trop fort ...
LE THMLLite a résolu tous ces problemes et d'autres que j'avais pas vu encore ...
 
Merci bien :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [BORLAND c++] utilisation de TRichedit ENCORE des prob[RESOLU NA!!]

 

Sujets relatifs
CSS : Trait de soulignement de couleur différente du texte ? [Résolu]VB : Utilisation d'une TextBox, dans un cas particulier
Oracle : requête qui ne termine plus (Résolu )Caractères phonétiques en HTML [résolu]
HELP : Utilisation des arguments dans un batchBug des sessions sur le long terme [résolu] ?
Prob avec la bibliotheque BGI ( graphics.h ) [prob résolu]utilisation des raccourcis alt + ..
[VC++] Où peut on trouver un tableau avec les valeurs RGB ? RESOLU 
Plus de sujets relatifs à : [BORLAND c++] utilisation de TRichedit ENCORE des prob[RESOLU NA!!]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR