sgcRichEdit: procesor tekstu w Twojej własnej aplikacji

· Komponenty
sgcRichEdit: procesor tekstu w Twojej własnej aplikacji
✦  sgcUI · sgcRichEdit

Procesor tekstu.
W Twojej aplikacji.

sgcRichEdit to nowy edytor dokumentów RTF w sgcUI. Użytkownicy piszą w nim listy, umowy, notatki i raporty ze stylami, listami, tabelami, obrazami i łączami. Twój kod odczytuje i zapisuje RTF, HTML, Markdown i JSON oraz eksportuje strony do DOCX, PDF i PNG.

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

↔  Przeciągnij uchwyt, aby przełączyć z jasnego na ciemny motyw

sgcRichEdit Editor—□✕
Demo sgcRichEdit Editor z presetem Fluent, motyw jasny
Ten sam dokument z presetem Fluent, motyw ciemny
JasnyCiemny
4formaty wejścia i wyjścia
3formaty eksportu
5frameworki UI
12języków edytora

Prędzej czy później każda aplikacja biznesowa potrzebuje prawdziwych dokumentów. System CRM pisze listy do klientów, program do zarządzania praktyką przechowuje notatki z przypadków, ERP zapisuje szablony ofert, a help desk odpowiada sformatowanym tekstem. Zwykłe pole tekstowe do tego nie wystarczy.

sgcRichEdit to kompletny edytor dokumentów wbudowany w sgcUI. Utrzymuje prawdziwy model dokumentu z nazwanymi stylami, listami wielopoziomowymi, tabelami ze scalonymi komórkami, obrazami w tekście i hiperłączami, a dokument układa na stronach. Jeden model dokumentu napędza kontrolki VCL, FireMonkey, WinForms, WPF i Avalonia, a ten sam model wczytuje, konwertuje i eksportuje dokumenty także bez żadnego okna.

sgcRichEdit w 60 sekund

Style, tabele, każdy język, motyw jasny i ciemny, każdy format i każda platforma w jedną minutę. Także na YouTube.

Prawdziwy dokument, a nie pole tekstowe

Umowy, raporty i listy muszą wyglądać tak samo przy każdym otwarciu. sgcRichEdit przechowuje akapity z nazwanymi stylami, a formatowanie wynika z łańcucha stylów i formatowania bezpośredniego, więc zmiana stylu Nagłówek 1 zmienia jednocześnie wszystkie nagłówki dokumentu.

AaAaAa
Nazwane styleWbudowane są style Normalny, Nagłówek 1 do 6, Tytuł, Podtytuł, Cytat, Kod, Akapit listy, Hiperłącze i Siatka tabeli.
Listy z 9 poziomamiPunkty, liczby, litery i cyfry rzymskie, z poleceniem podwyższania i obniżania poziomu.
TabeleKomórki scalane w kolumnach i wierszach, wiersze nagłówka, obramowania, tła i tabele zagnieżdżone.
Obrazy i łączaObrazy w tekście i hiperłącza, z kliknięciem z klawiszem Ctrl i zdarzeniem OnLinkClick.
↺↻
Cofnij i ponówPełna historia, z pisaniem grupowanym w słowa, więc jedno cofnięcie usuwa jedno słowo.
wzrost w III kwartale, wzrost w Europie
Znajdź i zamieńW akapitach i komórkach tabel, z wyrażeniami regularnymi, a Zamień wszystko jako jeden krok cofania.

Z bliska

Pogrubienie, kursywa, podkreślenie, przekreślenie, indeks górny i dolny, nazwy czcionek, rozmiary, kolory i wyróżnienia, wyrównanie, wcięcia i interlinia. Oto formatowanie powyższego dokumentu przy powiększeniu 200%.

Formatowanie znaków przy powiększeniu 200%

Tabele, obrazy i strony

Edytor dzieli dokument na strony zgodnie z własnymi ustawieniami strony. Akapity dzielą się po wierszach, wiersze nagłówka tabeli powtarzają się na każdej stronie, a podziały stron są zachowywane, więc użytkownik drukuje dokładnie to, co widzi. Print i PrintPreview działają na pulpicie, a ExportToPNG renderuje dowolną stronę w wybranej rozdzielczości.

sgcRichEdit Editor—□✕
Tabela z kolorowym wierszem nagłówka, scaloną komórką i wykresem w tekście
Strona 1 dokumentu, wyeksportowana do PNG
Strona 1
Strona 2 dokumentu, wyeksportowana do PNG
Strona 2
Strona 3 dokumentu, wyeksportowana do PNG
Strona 3

Trzy strony dokumentu ze zrzutów ekranu, zapisane przez ExportToPNG przy 150 DPI.

Każdy język, każdy użytkownik

Użytkownicy japońscy, chińscy i koreańscy piszą przez edytor metody wprowadzania, a użytkownicy arabscy i hebrajscy piszą od prawej do lewej, często z angielskimi słowami w tym samym zdaniu. sgcRichEdit pokazuje kompozycję IME w tekście przy karetce i zatwierdza ją jako jeden krok cofania. Akapity dwukierunkowe utrzymują karetkę i zaznaczenie tam, gdzie czytelnik się ich spodziewa, a każdy akapit ma własny kierunek.

sgcRichEdit Editor—□✕
Tekst arabski od prawej do lewej wymieszany z angielskim oraz akapity po japońsku, chińsku, koreańsku i rosyjsku, motyw ciemny

Jasny, ciemny, Fluent lub Classic

sgcRichEdit jest kontrolką sgcUI, więc podąża za motywem aplikacji tak jak reszta pakietu. Wybierz preset Fluent, a edytor i wstążka przyjmą wygląd Windows 11. Przełącz na ciemny, a wstążka, pasek stanu i backstage przyciemnią się, podczas gdy strona pozostanie biała, jak papier.

sgcRichEdit Editor—□✕
sgcRichEdit z presetem Fluent, motyw jasny
sgcRichEdit z presetem Classic
sgcRichEdit z presetem Fluent, motyw ciemny
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);

Jeden dokument, każdy format

Dokumenty przychodzą jako RTF z Worda, jako HTML z przeglądarki lub e-maila i jako Markdown z narzędzia programisty. sgcRichEdit odczytuje i zapisuje je wszystkie oraz ma własny natywny format JSON, który przechowuje każdy szczegół dokumentu. LoadFromFile rozpoznaje format, SaveToFile zapisuje w żądanym formacie, a AsHTML, AsRTF i AsMarkdown odczytują i zapisują dokument jako ciąg znaków.

Wczytywanie

RTFz Worda
HTMLz CSS
Markdowntakże tabele
JSONnatywny
Jeden model dokumentu Style, listy, tabele, obrazy i łącza, ułożone na stronach

Zapis i eksport

DOCXdla Worda
PDFze znacznikami
PNGdowolny DPI
RTF, HTML, MDi JSON

Każda jednostka formatu w klauzuli uses rejestruje swój czytnik lub zapis, a sgcUIPDF_Export łączy eksport PDF z silnikiem sgcPDF, który jest instalowany razem z 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;

Edycja, która wydaje się znajoma

Użytkownicy przynoszą ze sobą nawyki z procesorów tekstu. Edytor reaguje na zwykłe skróty (Ctrl+B, Ctrl+I, Ctrl+U, wyrównanie, nagłówki, punktory i Ctrl+K dla łączy), przechowuje pełną historię cofania i ponawiania oraz wyszukuje i zamienia tekst w akapitach i komórkach tabel.

sgcRichEdit Editor—□✕
Pasek znajdowania i zamiany w demie Editor

Każde polecenie jest dostępne z kodu przez ExecuteCommand i CommandState oraz przez akcje VCL i FireMonkey, więc Twój własny pasek narzędzi lub wstążka sgcToolbar pozostaje zsynchronizowana z zaznaczeniem.

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;

Twoje dokumenty w Twojej bazie danych

Notatki, listy i szablony zwykle znajdują się w polu bazy danych. TsgcVCLDBRichEdit i TsgcFMXDBRichEdit łączą się z TDataSource, odczytują pola memo i BLOB, przełączają zbiór danych w tryb edycji przy pierwszej zmianie i zapisują dokument z powrotem, gdy użytkownik opuści kontrolkę. Escape przywraca wartość pola, a AutoDisplay wczytuje duże dokumenty na żądanie.

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;

Bez okna, nawet na Linux64

Dokumenty często trzeba konwertować na serwerze: RTF do HTML dla portalu, JSON do PDF dla archiwum, stronę do PNG jako miniaturę. Model dokumentu, formaty, układ i eksporty nie zależą od VCL ani FireMonkey, więc usługa Windows lub demon Linux64 (Delphi 10.2 i nowsze) może wczytywać, zmieniać, renderować i eksportować dokumenty bez okna, z tym samym układem stron co kontrolki wizualne.

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;

Także dla .NET

Kontrolki .NET dla WinForms, WPF i Avalonia używają tych samych nazw co kontrolki Delphi. Biblioteka główna obsługuje .NET Standard 2.0, .NET Framework 4.7.2 oraz .NET 6, 8, 9 i 10, a właściwość DocumentText wiąże się z Twoimi danymi we wszystkich trzech frameworkach.

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");

Uruchom dema

Dema Delphi i C++ Builder instalują się z wersją próbną sgcUI, a dema .NET są dołączone do pobrania Registered dla .NET.

Gdzie jest dołączony sgcRichEdit

sgcRichEdit jest sprzedawany osobno dla Delphi i C++ Builder oraz dla .NET, a także wchodzi w skład sgcUI Enterprise i pakietu All-Access. Pojedynczy pakiet instaluje również sgcPDF, więc eksport PDF zawsze działa. Nie ma bezpłatnej edycji Community. Szczegóły znajdziesz na stronie z cennikiem.

Daj swoim użytkownikom procesor tekstu

sgcRichEdit pojawia się w sgcUI 2026.11 dla Delphi i C++ Builder, na VCL i FireMonkey, oraz dla .NET na WinForms, WPF i Avalonia.

Pytania lub uwagi? Skontaktuj się z nami, odpowiedzą Ci osoby, które napisały ten kod.