TMemo & TRichEdit [RESOLU]
Merci pour ces r�ponses...
Comment formater un RichEdit ? [RESOLU]
Suite � vos messages, j'ai gratt� un peu le TRichEdit et je me suis fait un petit bout de code pour formater certaines zones de textes de mon controle TRichEdit.
Je vous le colle ci-dessous, au cas o� vous en auriez besoin.
Je pense que �a pourrait figurer dans la FAQ, parce que ce n'est pas �vident en lisant la doc, et au vu des r�ponses, leTRichEdit est bien mal connu...
Dans le code ci-dessous, j'ai une fiche avec un controle TRichEdit.
Dans ce RichEdit, j'ai un petit texte avec des titres et je voudrais que tous les titres apparaissent avec un style de police diff�rent du texte.
Dans la doc (appuyer sur F1 apr�s avoir s�lectionn� la propri�t� Plain Text du controle), il est propos� de remplir le TRichEdit � partir d'un fichier .RTF par la m�thode RichEdit1->Lines->LoadFromFile(fichier);
Il semble d'ailleurs qu'il y a une erreur car dans l'exemple, ils placent PlainText � true alors que dans la doc, ils disent qu'il faut le mettre � false pour prendre en compte le formatage. A v�rifier...
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
//---------------------------------------------------------------------------
// Apparition de la fiche
//---------------------------------------------------------------------------
void __fastcall TF_info_X::FormShow(TObject *Sender)
{
//
// Déclarations
//
int nI;
// variables de formatage du TRichEdit
int nFind;
TStringList * pListeChaine = new(TStringList);
// Remise du focus sur les conseils
this->RichEdit_conseils->SetFocus();
//
// Application des styles
//
// - initialisation du texte à passer en style
pListeChaine->Clear();
pListeChaine->Add("Mon titre 1");
pListeChaine->Add("Mon titre 2");
pListeChaine->Add("Etc.");
pListeChaine->Add("...");
pListeChaine->Add("Les TRichEdit, c'est pas simple !");
pListeChaine->Add("Mon dernier titre");
// - balayage de la fiche
for (nI = 0; nI < pListeChaine->Count; nI++)
{
nFind = RichEdit_conseils->FindTextA(pListeChaine->Strings[nI],
0,
RichEdit_conseils->Text.Length(),
TSearchTypes()<< stMatchCase);
if (nFind >= 0)
{
RichEdit_conseils->SelStart = nFind;
RichEdit_conseils->SelLength = pListeChaine->Strings[nI].Length();
// Application du style
RichEdit_conseils->SelAttributes->Size = 10;
RichEdit_conseils->SelAttributes->Style =
RichEdit_conseils->DefAttributes->Style << fsBold
<< fsItalic
<< fsUnderline
<< fsStrikeOut;
}
}
// Désélection
RichEdit_conseils->SelStart = 0;
RichEdit_conseils->SelLength = 0;
// Libération de la mémoire
delete pListeChaine;
} |
Juste une petite suggestion � Monsieur Borland pour le TRichEdit de la prochaine version... on pourrait pas le remplir juste par copier-coller depuis un fichier rtf ? :?: