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 ? :?: