..:: BALISES DANS UN RICHEDIT ::..

DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003 - 22 mars 2003 à 12:07
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003 - 31 mars 2003 à 21:44
Bonjour à tous,

Suite au message que j'avait envoyé (celui du dessous d'ailleurs) j'avais essayé de transmettre des parametres de couleurs, de font, de style d'un RichEdit vers un autre en LOCAL déjà.

J'avais choisi comme solution celle que Nono40 m'avait donné, à savoir l'insertion de balises comme le html dans un RichEdit.

Le problème c trop compliqué à coder, pour les reconnaitre, ex :

<gr>COOL<gr> J'aime le <sl>DELPHI<sl>

Et bien j'arrive a faire passer les parametres, mais pas a enlever les balises ! Ex :

<gr>COOL<gr> J'aime le <sl>DELPHI<sl>

Voila ce que j'obtien dans le RichEdit !

Voila si vous pouvez m'aider ce serai cool car la je suis bloqué et j'arrive pas a trouver d'autres solutions...
Merci,

-[!!!]- DeZNiUS -[!!!]-

41 réponses

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
22 mars 2003 à 12:46
Si tu arrives à mettre en forme ton texte là où il y a des balises, cela ne doit pas être trop compliqué de supprimer ces balises juste après traitement avec un truc genre Delete(Texte, PosBalise, length(balise));

Comme tu sais où est la balise au moment où tu met en forme le texten profites en pour la supprimer juste après l'avoir utilisée...

Bonne prog' !
[mailto:bestiol@cario.fr Bestiol.]
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
22 mars 2003 à 13:41
Salut Bestiol,

Merci de m'avoir répondu à mon msg de detresse :)

En effet je ne connaissais pas la commande Delete ! Je suis
pas encore très opérationnel a ce niveau :) !
Donc je vais essayer cette nouvelle méthode pour voir.

J'ai essayé avec Length et SelStart, mais ca me parait impossible, j'ai essayé avec Pos, mais y a pas moyen, car quand y'en a plusieurs qui se suivent, c l'enfer, genre :

<sl>COOL<sl>

Donc je sais pas comment on fait dans ce cas ! je croit que je vais laisser tomber l'affaire et passer en texte simple, temps pis pour le RichEdit ! Sauf si vous connaissez un RichEdit qui interprete le code HTML, la j'aurai plus qu'a l'utiliser, parce que la c vraiment difficile.

Merci d'avoir répondu Bestiol !

@+

-[!!!]- DeZNiUS -[!!!]-
0
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
22 mars 2003 à 13:51
Sur Torry.net :

Dans la sous-catégorie "HTML, XML and so on" de la catégorie "Internet" de la page "VCL" (dans le menu en haut à gauche !), tu trouveras "ThtmlViewer & TFrameViewer v.9.0" (en milieu/fin de page), qui, je pense rempliras ce que tu veux...
Il n'est payant que si tu veux les sources avec, ou si tu fais un application commerciale !

Bonne prog' !
[mailto:bestiol@cario.fr Bestiol.]
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
22 mars 2003 à 15:15
Salut Bestiol,

Etant donné que je suis parti manger, j'ai pas pu répondre avant :-)
Je te remercie vraiment, car la c prise de tete, aujourd'hui ca fait 3h que je cherche un moyen pour faire ca, sans compter les autres jours. C'est pas que je suis nul en Delphi, mais on peut pas etre bon partout, surtout ca fait que 1 an que je programme en Delphi, y a plein de truc simple que je sais pas, comme l'adresse de ce site :-) (du moins pas ce que tu vient de me dire)

-[!!!]- DeZNiUS -[!!!]-
0

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

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
22 mars 2003 à 15:40
Voici un article (signé de Paul WARREN) qui pourrait, je le pense, te rendre service pour ton problème : Syntax Highlighting With RichEdit.

May Delphi be with you
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
22 mars 2003 à 19:52
Bonsoir à tous,

Merci Delphiprog pour ce link, effectivement, c vraiment ce que je cherche !
Je voudrai une fonction qui converti du code RTF en HTML, car le RTF est beaucoup trop gros à transmettre via internet, le HTML est plus petit, c d'ailleurs sa raison d'etre à mon avis.

Merci beaucoup à tous !

@+

-[!!!]- DeZNiUS -[!!!]-
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
22 mars 2003 à 21:02
Bonsoir,

A l'attention de Delphiprog : Le link que tu m'a donné est pas mal, mais comment faire une unit delphi afin de l'utiliser ?

J'arrive pas à la compiler, c'est impossible !
Si vraiment il existe une fonction qui converti du HTML en RTF et du RTF en HTML, c'est vraiment ce qui me faut !

Merci

-[!!!]- DeZNiUS -[!!!]-
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
22 mars 2003 à 21:36
Tu peux télécharger les codes sources dans la rubrique et vovi le lien direct : companion CD n° 83. Les unités constituées sont dans l'archive (dossier RichEdit). Le tout ne pèse "que" 916Ko avec l'ensemble des autre codes sources du magazine n° 83.

May Delphi be with you
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
22 mars 2003 à 23:30
Bonsoir à tous,

A merci beaucoup Delphiprog, enfin je vais pouvoir finir mon Messager, il manquai plus que ca. Franchement merci, je te revoudrai ca !

@+

-[!!!]- DeZNiUS -[!!!]-
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
23 mars 2003 à 14:15
Bonjour à tous,

Je crois que je demande l'impossible :-)
Même avec les sources que Delphiprog m'a donné, il est IMPOSSIBLE de compiler un petit projet, L'unit NewParse.pas ne veut pas compiler...
Voici les erreurs :

[Avertissement] NewParse.pas(204): Symbole 'AppendStr' non autorisé
[Avertissement] NewParse.pas(205): Symbole 'AppendStr' non autorisé
[Erreur] NewParse.pas(309): Identificateur non déclaré : 'SLineTooLong'
[Erreur] NewParse.pas(374): Identificateur non déclaré : 'SParseError'
[Erreur] NewParse.pas(740): Identificateur non déclaré : 'SInvalidString'
[Erreur fatale] Filters.pas(32): Impossible de compiler l'unité utilisée 'NewParse.pas'

Je crois que convertir du RTF en HTML et inversement n'est pas donné à tous !!!

@+
Merci quand même...

-[!!!]- DeZNiUS -[!!!]-
0
kakochime Messages postés 24 Date d'inscription mardi 14 mai 2002 Statut Membre Dernière intervention 5 décembre 2008 1
23 mars 2003 à 17:22
Il y'a l'unité rtf2html qui marche bien dans un sens
rtf ---> html, mais pas l'inverse !... A toi de voir.

Tu peux télécharger la version 1.4 ici:

http://www.xwebware.com/products/rtf2html/

Kakochime
0
kakochime Messages postés 24 Date d'inscription mardi 14 mai 2002 Statut Membre Dernière intervention 5 décembre 2008 1
23 mars 2003 à 17:38
Erreur sur le lien précédent.
L'unité se trouve là ;-)

http://www.torry.net/vcl/vcltools/unitsconversion/rtf2html.zip

Kakochime
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
23 mars 2003 à 21:11
Je te remercie pour ce lien kakochime, je vais aller voir !

Merci et @+ :-)

-[!!!]- DeZNiUS -[!!!]-
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
25 mars 2003 à 16:49
Bonjour à tous,

CA Y EST !!!!!!!
G TROUVE UN MOYEN D'ENLEVER LES BALISES ET DE DECTECTER QUAND ELLE SONT LA !!!!

Seulement il y a encore un petit probleme legerement genant :-)

quand j'applique le parametre GRAS avec DefAttribut, ca fait le text. Quand je demande de le desactiver, ca enleve le gras du RichEdit !!!
G vu il y a une commande, SelAttribut, qui permet de faire la meme chose pour un texte selectionné. Donc je doit aussi trouver un moyen de selectionner le texte dans le RichEdit pour appliquer individuellement ????

C pas vrai !!!! Je passe plus de tps a faire du texte formaté, plus que la partie reseau (c pour un messager) deja fini ! mais comme j'aime les soft bien terminé, je fait appel a vous delphiste qui pourrai m'aider dans ce probleme plus qu'enervant !!!

Merci à tous,

-[!!!]- DeZNiUS -[!!!]-
0
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
25 mars 2003 à 18:37
Comment fais-tu pour détecter l'emplacement des balises ?!
Pasque si tu connais la position de chaque balise, il n'y a rien de plus simple que d'utiliser SelStart et Sellength avec ton RichEdit !

Bonne prog' !
[mailto:bestiol@cario.fr Bestiol.]
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
25 mars 2003 à 21:49
Salut Betiol,

Et merci pour m'avoir aidé dans le passé (je t'ai mis dans mon about box, comme tous ceux qui m'ont aidé dans ce forum ;-)

Tien voici le src, tu jugera par toi - meme : mais attend toi pas a un truc reflechi, je me sui debrouillé comme je peux ...

---------------- < CODE >---------------------------------

{ Cette méthode consiste a selectionner le text de Balise (C un TEdit) pour savoir si il y a une balise}

function ReadText(SelStart : integer ; SelLength : integer) : string;
begin
Main_Form.Balise.SelStart := SelStart;
Main_Form.Balise.SelLength := SelLength;
Result := Main_Form.Balise.SelText;
end;

procedure Txt2Rtf;
var
S, Balise, Tag : string;
i : integer;

begin
i := 0;
S := Main_Form.Balise.Text;

repeat
Balise := ReadText(i, 1);

//ShowMessage('BALISE : ' + Balise + ' - i : ' + inttostr(i));

if Balise = '<' then
begin
Tag := ReadText(i + 1, 2);

Showmessage('TAG : ' + tag);

if Tag = 'br' then Main_Form.RichEdit.DefAttributes.Style := [fsBold];
if Tag = 'sl' then Main_Form.RichEdit.DefAttributes.Style := [fsUnderLine];
if Tag = 'un' then Main_Form.RichEdit.DefAttributes.Style := [fsItalic];
if Tag = 'so' then Main_Form.RichEdit.DefAttributes.Style := [fsStrikeOut];

if Tag = '/b' then Main_Form.RichEdit.DefAttributes.Style := [];

// On passe de 2 et on met balise à vide.
// on veut pas de TAG (
) dans le RichEdit.
i := i + 3;
Balise := '';
end;

Main_Form.RichEdit.Text := Main_Form.RichEdit.Text + Balise;
Inc(i);
until i = Length(Main_Form.Balise.Text);
Main_Form.RichEdit.Lines.Add('');
end;

---------------- < CODE >---------------------------------

Voila, dit moi ce que t'en pense :-)
@+

-[!!!]- DeZNiUS -[!!!]-
0
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
26 mars 2003 à 13:24
Salut !!

Pour mon pseudo dans l'aboutbox, c'est sympa !!

Pour ton code, ta valeur i correspond en fait à la position du curseur dans le texte... Pour sélectionner le texte entre les balises, il faut donc que tu fasses RichEdit.SelStart := i + 3, pour passer la balise en cours, et après, il faut que tu fasses une petite fonction qui te renvoie le caractère "<" de ta balise de fin... Ainsi, tu pourras faire RichEdit.Sellength := PosFin - (i + 3), et utiliser RichEdit.SelAttributes !

J'espère avoir bien répondu à ton problème !!

Bonne prog' !
[mailto:bestiol@cario.fr Bestiol. ]
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
26 mars 2003 à 20:13
Bonsoir à tous,

C normal Bestiol que je mettes ton pseudo dans mon about box, je respecte tt ceux qui m'aide et par consequent c la moindre des choses que je puisse faire :-)

D'ailleurs si tu veux je peut mettre un link vers ton site internet (si t'en a un) et/ou vers ton e-mail quand on click sur ton pseudo. Mais ca, bien sur, c toi qui me dit si tu m'autorise à le faire, car si t'a pas envie, je le met pas, je laisse juste le pseudo :-) (normal koi ;-)

===

Escuse moi de pas t'avoir mieux expliqué la src, car g pas eu le tps de le faire. Effectivement, le integer "i" correspond à la position du curseur du txt.

Je vais avec le sourire essayer ce que tu vient de me proposer :-)
... en esperant que ca fonctionne !!

Je te remercie de m'avoir repondu aussi vite, et de ne pas m'avoir laissé tomber dans le fin fond de la dimention Delphi :-D

Merci et @+

-[!!!]- DeZNiUS -[!!!]-

PS : Y'a des chances que je remette un post, car a tt les coup ca marchera pas :-)

Apres il faudra que je cree une fonction contraire, mais ca me parait impossible, car passer du richedit à un truc du style
SUPER, c impossible pour mes neurones :-)
0
DeZNiUS Messages postés 82 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 24 octobre 2003
26 mars 2003 à 21:37
Bonsoir à tous,

Ca me prend vaiment la tete ce truc de RichEdit qui commence vraiment a me taper sur le system :-/
Je crois que je vais laisser tomber, car c vraiment infernal de gerer ce truc la.

J'ai pensé à un autre truc : soit j'utilise un RichEdit qui suporte le HTML (moins lourd que le RTF)...
... soit je prend l'ADSL et j'envoi des fichiers RTF par le reseau ces fichiers sont nul il sont trop gros pour le reseau !

Voila c tt @+

-[!!!]- DeZNiUS -[!!!]-
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 mars 2003 à 21:50
Cool, keep cool...
Question : le format RTF est-il absolument nécessaire dans ton développement ?
Peux-tu décrire, de manière concise, l'objectif à atteindre et les contraintes à respecter impérativement. Enfin, c'est dasn le cas où tu veux qu'on t'aide efficacement car là, la discussion s'allonge, s'alloooonnge et ...n'aboutit pas.
May Delphi be with you
0
Rejoignez-nous