sgcRichEdit : un traitement de texte au cœur de votre application

· Composants
sgcRichEdit : un traitement de texte au cœur de votre application | Blog eSeGeCe
✦  sgcUI · sgcRichEdit

Un traitement de texte.
Dans votre application.

sgcRichEdit est le nouvel éditeur de texte enrichi de sgcUI. Vos utilisateurs rédigent lettres, contrats, notes et rapports avec des styles, des listes, des tableaux, des images et des liens. Votre code lit et écrit du RTF, du HTML, du Markdown et du JSON, et exporte des pages DOCX, PDF et PNG.

  • VCL
  • FireMonkey
  • C++ Builder
  • WinForms
  • WPF
  • Avalonia

↔  Faites glisser la poignée pour passer du clair au sombre

sgcRichEdit Editor—□✕
La démo sgcRichEdit Editor avec le préréglage Fluent, thème clair
Le même document avec le préréglage Fluent, thème sombre
ClairSombre
4formats en import et export
3formats d'export
5frameworks d'interface
12langues de l'éditeur

Tôt ou tard, toute application métier a besoin de vrais documents. Un CRM rédige des courriers à ses clients, un logiciel de gestion de cabinet conserve des notes de dossier, un ERP stocke des modèles de devis et un help desk répond en texte mis en forme. Un simple bloc-notes ne suffit à aucun de ces usages.

sgcRichEdit est un éditeur de documents complet intégré à sgcUI. Il conserve un véritable modèle de document avec des styles nommés, des listes à plusieurs niveaux, des tableaux à cellules fusionnées, des images en ligne et des hyperliens, puis il met le document en page. Un seul modèle de document alimente les contrôles VCL, FireMonkey, WinForms, WPF et Avalonia, et ce même modèle charge, convertit et exporte des documents sans aucune fenêtre.

sgcRichEdit en 60 secondes

Styles, tableaux, toutes les langues, clair et sombre, tous les formats et toutes les plateformes en une minute. Aussi sur YouTube.

Un vrai document, pas une zone de texte

Les contrats, rapports et courriers doivent avoir le même aspect à chaque ouverture. sgcRichEdit stocke les paragraphes avec des styles nommés, et la mise en forme provient d'une chaîne de styles complétée par la mise en forme directe. Modifier le style Titre 1 change donc tous les titres du document en une seule fois.

AaAaAa
Styles nommésNormal, Titre 1 à 6, Titre, Sous-titre, Citation, Code, Paragraphe de liste, Lien hypertexte et Grille de tableau sont intégrés.
Listes à 9 niveauxPuces, chiffres, lettres et chiffres romains, avec une commande pour monter ou descendre d'un niveau.
TableauxCellules fusionnées sur plusieurs colonnes et lignes, lignes d'en-tête, bordures, arrière-plans et tableaux imbriqués.
Images et liensImages en ligne et hyperliens, avec Ctrl+clic et un événement OnLinkClick.
↺↻
Annuler et rétablirUn historique complet, avec la saisie regroupée par mots, si bien qu'une annulation retire un mot.
croissance au T3, croissance en Europe
Rechercher et remplacerDans les paragraphes et les cellules de tableau, avec expressions régulières et Tout remplacer en une seule étape d'annulation.

De près

Gras, italique, souligné, barré, exposant et indice, noms de polices, tailles, couleurs et surlignages, alignement, retraits et interligne. Voici la mise en forme du document ci-dessus avec un zoom de 200 %.

Mise en forme des caractères avec un zoom de 200 %

Tableaux, images et pages

L'éditeur pagine le document selon ses propres paramètres de page. Les paragraphes se coupent ligne par ligne, les lignes d'en-tête d'un tableau se répètent sur chaque page et les sauts de page sont conservés, de sorte que ce que voient les utilisateurs correspond à ce qu'ils impriment. Print et PrintPreview fonctionnent sur le poste de travail, et ExportToPNG restitue n'importe quelle page à la résolution de votre choix.

sgcRichEdit Editor—□✕
Un tableau avec une ligne d'en-tête colorée, une cellule fusionnée et une image de graphique en ligne
Page 1 du document, exportée en PNG
Page 1
Page 2 du document, exportée en PNG
Page 2
Page 3 du document, exportée en PNG
Page 3

Les trois pages du document des captures d'écran, produites par ExportToPNG à 150 DPI.

Toutes les langues, tous les utilisateurs

Les utilisateurs japonais, chinois et coréens saisissent leur texte avec un éditeur de méthode de saisie (IME), et les utilisateurs arabes et hébreux écrivent de droite à gauche, souvent avec des mots anglais dans la même phrase. sgcRichEdit affiche la composition IME directement au niveau du curseur et la valide en une seule étape d'annulation. Les paragraphes bidirectionnels placent le curseur et la sélection là où le lecteur les attend, et chaque paragraphe a sa propre direction.

sgcRichEdit Editor—□✕
Texte arabe de droite à gauche mêlé à de l'anglais, et paragraphes en japonais, chinois, coréen et russe, thème sombre

Clair, sombre, Fluent ou Classic

sgcRichEdit est un contrôle sgcUI, il suit donc le thème de l'application comme le reste de la suite. Choisissez le préréglage Fluent et l'éditeur comme le ruban adoptent l'apparence de Windows 11. Passez en sombre et le ruban, la barre d'état et le backstage deviennent sombres, tandis que la page reste blanche, comme du papier.

sgcRichEdit Editor—□✕
sgcRichEdit avec le préréglage Fluent, thème clair
sgcRichEdit avec le préréglage Classic
sgcRichEdit avec le préréglage Fluent, thème sombre
uses
  sgcUICore_Theme;

// the Windows 11 look for every sgcUI control, sgcRichEdit included
sgcUISetApplicationThemePreset('Fluent');
// follow the light / dark setting of Windows, live
sgcUISetApplicationThemeFollow(utfSystem, True);

Un document, tous les formats

Les documents arrivent en RTF depuis Word, en HTML depuis un navigateur ou un e-mail, et en Markdown depuis un outil de développement. sgcRichEdit lit et écrit tous ces formats et conserve son propre format JSON natif, qui stocke le moindre détail du document. LoadFromFile détecte le format, SaveToFile prend le format que vous demandez, et AsHTML, AsRTF et AsMarkdown lisent et écrivent le document sous forme de chaîne.

Charger

RTFdepuis Word
HTMLavec CSS
Markdowntableaux inclus
JSONnatif
Un seul modèle de document Styles, listes, tableaux, images et liens, mis en page

Enregistrer et exporter

DOCXpour Word
PDFbalisé
PNGtout DPI
RTF, HTML, MDet JSON

Chaque unité de format dans la clause uses enregistre son lecteur ou son écrivain, et sgcUIPDF_Export relie l'export PDF au moteur sgcPDF, installé avec sgcRichEdit.

uses
  sgcRichEdit_Formats, sgcRichEdit_VCL,
  sgcRichEdit_RTF_Reader, sgcRichEdit_HTML_Writer, sgcRichEdit_Markdown,
  sgcRichEdit_DOCX, sgcUIPDF_Export;

procedure TForm1.ConvertContract;
begin
  sgcVCLRichEdit1.LoadFromFile('contract.rtf');
  sgcVCLRichEdit1.SaveToFile('contract.html', refHTML);
  sgcVCLRichEdit1.SaveToFile('contract.md', refMarkdown);
  sgcVCLRichEdit1.SaveToFile('contract.docx', refDOCX);
  sgcVCLRichEdit1.ExportToPDF('contract.pdf');
  sgcVCLRichEdit1.ExportToPNG('page1.png', 0, 150);
end;

Une édition qui semble familière

Les utilisateurs apportent avec eux leurs habitudes de traitement de texte. L'éditeur répond aux raccourcis habituels (Ctrl+B, Ctrl+I, Ctrl+U, alignement, titres, puces et Ctrl+K pour les liens), conserve un historique complet d'annulation et de rétablissement, et recherche et remplace du texte dans les paragraphes et les cellules de tableau.

sgcRichEdit Editor—□✕
La barre de recherche et de remplacement de la démo Editor

Chaque commande est disponible depuis le code grâce à ExecuteCommand et CommandState, ainsi que par les actions VCL et FireMonkey, si bien que votre propre barre d'outils ou un ruban sgcToolbar reste synchronisé avec la sélection.

uses
  sgcRichEdit_Commands;

procedure TForm1.btnBoldClick(Sender: TObject);
begin
  sgcVCLRichEdit1.ExecuteCommand(recBold);
end;

procedure TForm1.sgcVCLRichEdit1SelectionChange(Sender: TObject);
begin
  // the button shows the state of the selection
  btnBold.Down := sgcVCLRichEdit1.CommandState(recBold).Checked;
end;

Vos documents, dans votre base de données

Les notes, courriers et modèles vivent généralement dans un champ de base de données. TsgcVCLDBRichEdit et TsgcFMXDBRichEdit se connectent à un TDataSource, lisent les champs memo et BLOB, placent le jeu de données en mode édition dès la première modification et réécrivent le document quand l'utilisateur quitte le contrôle. Échap restaure la valeur du champ, et AutoDisplay charge les gros documents à la demande.

uses
  sgcRichEdit_Formats, sgcRichEdit_VCL_DB;

sgcVCLDBRichEdit1.DataSource := dsNotes;
sgcVCLDBRichEdit1.DataField := 'NOTE';
// store the documents as JSON; refAuto, the default, detects the format
sgcVCLDBRichEdit1.FieldFormat := refJSON;

Sans interface, même sous Linux64

Il faut souvent convertir des documents sur un serveur : du RTF en HTML pour un portail, du JSON en PDF pour une archive, une page en PNG pour une miniature. Le modèle de document, les formats, la mise en page et les exports ne dépendent ni de VCL ni de FireMonkey. Un service Windows ou un démon Linux64 (Delphi 10.2 et versions ultérieures) peut donc charger, modifier, restituer et exporter des documents sans fenêtre, avec la même mise en page que les contrôles visuels.

uses
  sgcRichEdit_Model, sgcRichEdit_Formats, sgcRichEdit_Print,
  sgcRichEdit_RTF_Reader, sgcRichEdit_HTML_Writer, sgcUIPDF_Export;

var
  oDocument: TsgcRichDocument;
begin
  oDocument := TsgcRichDocument.Create;
  try
    sgcRichLoadFromFile(oDocument, 'letter.rtf');
    sgcRichSaveToFile(oDocument, 'letter.html', refHTML);
    // tagged PDF, no window and no VCL or FireMonkey needed
    sgcRichExportPDF(oDocument, nil, 'letter.pdf');
  finally
    oDocument.Free;
  end;
end;

Pour .NET aussi

Les contrôles .NET pour WinForms, WPF et Avalonia utilisent les mêmes noms que ceux de Delphi. La bibliothèque principale cible .NET Standard 2.0, .NET Framework 4.7.2 et .NET 6, 8, 9 et 10, et la propriété DocumentText se lie à vos données dans les trois frameworks.

using esegece.sgcRichEdit;
using esegece.sgcUICore;

// once at startup: PDF export through the esegece.sgcUICore.sgcPDF package
TsgcUIPDFExporter.Register();

richEdit.LoadFromFile("contract.rtf");
richEdit.SaveToFile("contract.html", TsgcRichEditFormat.refHTML);
richEdit.SaveToFile("contract.docx", TsgcRichEditFormat.refDOCX);
richEdit.ExportToPDF("contract.pdf");

Essayez les démos

Les démos Delphi et C++ Builder s'installent avec la version d'évaluation de sgcUI, et les démos .NET sont livrées avec le téléchargement .NET Registered.

Où sgcRichEdit est inclus

sgcRichEdit est vendu seul pour Delphi et C++ Builder ainsi que pour .NET, et il est inclus dans sgcUI Enterprise et dans le pack All-Access. Le package unique installe aussi sgcPDF, de sorte que l'export PDF fonctionne toujours. Il n'existe pas d'édition Community gratuite. Consultez la page des tarifs pour les détails.

Offrez un traitement de texte à vos utilisateurs

sgcRichEdit arrive avec sgcUI 2026.11 pour Delphi et C++ Builder, sur VCL et FireMonkey, et pour .NET sur WinForms, WPF et Avalonia.

Des questions ou des retours ? Contactez-nous, vous recevrez une réponse de ceux qui ont écrit le code.