Bonjour tous
Je suis entrain de faire une appli o� l'utilisateur pourra entrer ses propres infobulles.
Le principe est simple : l'op�rateur choisi "entrer un commentaire" gr�ce � un menupopup sur le composant. De la il �crit son message dans un TMemo.
Le texte du TMemo est alors enregistr� dans un fichier ini.
Tout les caract�res correspondant � "\r\n" sont remplac� par des ";". Le "\r\n" appara�t quand l'utilisateur frappe sur entr�e (). Ainsi dans le fichier ini, le texte sera complet lors de l'affichage de l'infobulle.
Lorsque l'utilisateur �crit � la suite sans taper "entr�e". le Tmemo fait un retour � la ligne logiciel gr�ce � wordwrap.Quand j'enregistre dans mon fichier ini, cela correspond � une seule ligne.
Mon probl�me est que lorsque je affiche cette ligne dans une infobulle, cela affiche 1seule et grande ligne. Je trouve cela tr�s moche.
Et j'aimerai donc pouvoir r�duire cette ligne en un petit paragraphe.
Y'a t il un moyen de d�tecter le wordwrap?
Si non, avez vous une id�e de comment faire?
J'ai une solution pas tr�s satisfaisante :
Si l'utilisateur �crit tous en ligne et que de temps en temps il tape "entr�e". Le paragraphe n'est pas r�gulier. Je continue � bosser dessus.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 { TIniFile *pIniFile = new TIniFile(IniPath); Text =Memo->Text; AnsiString tmp,tmp1; tmp= Text; int i=1; int L = Text->Length(); /*Défini des retours chariots pour les phrases trop longues*/ for(int j=0;j<L;j++) { //Regarde à chaque espace si la phrase n'est pas trop longue if (Tmp.IsDelimiter(" ",j)==true) { if (j>(33*i)) //Si trop de caractère { Tmp.Insert("\r\n",j); //Insere le retour chariot i+=1; j+=1; } } } Text = StringReplace(Tmp, "\r\n", ";", TReplaceFlags() << rfReplaceAll);/*Remplace le sauts de ligne par 1 pointvirgule*/ pIniFile->WriteString(Unit,Name,Text); Text= ""; delete pIniFile;
Mais si quelqu'un � une meilleur solution je suis preneur.
Merci de votre aide
++
Partager