TRichMemo und Tabellen

Rund um die LCL und andere Komponenten
Antworten
Flenser
Beiträge: 24
Registriert: Di 28. Okt 2014, 12:49

TRichMemo und Tabellen

Beitrag von Flenser »

Ich habe in meinem Programm bisher über OLE Worddateien mit Tabellen erstellt. Die Tabellen sind schon vorhanden und formatiert, deren Zeilenanzahl variert aber, so dass die Zeilenanzahl immer erst vorm Füllen angepasst wird. Dabei habe ich die Tabellen immer nacheinander gefüllt.
Bisher funktionierte dies auch ganz gut. Jetzt haben hier aber einige Rechner Office365 und bei diesen Rechnern macht das bisherige Vorgehen zu oft Probleme in Form von nicht ausgefüllten Tabellen. Keine Ahnung warum...

Ich wollte jetzt ganz gern den Inhalt der Word-Dateien VOR Übergabe erstellen in mit einem Rutsch an Word übergeben:

Tabellen erstellen
In die Zwischenablage kopieren
Word-OLE starten
Aus der Zwischenablage einfügen

Das TRichMemo "akzeptiert" Wordtabellen, wenn ich sie in Word in die Zwischenablage kopiere und dann in meinem Programm einfüge. Das geht sowohl händisch mit Strg+C Strg+V als auch über Code:

varDokument.Tables.item(1).select;
varWdApp.Selection.copy;
RichMemo.PasteFromClipboard;

Das ist ja nun aber alles andere als elegant.

Gibt es eine Möglichkeit, die Tabellen direkt im RichMemo inkl. Spalten- und Textformatierungen zu erstellen und zu füllen?
Ja, das RichMemo ist dafür nicht gedacht, kann es aber ja irgendwie trotzdem.

Hat jemand vielleicht einen besseren Ansatz, bei dem am Ende auch Worddateien heraus kommen?

ps4711
Beiträge: 16
Registriert: Mi 1. Dez 2021, 13:39
OS, Lazarus, FPC: Lazarus 2.2.0 // FPC 3.2.2 x86_64-linux-gtk2 // xubuntu 22.04
CPU-Target: 64Bit

Re: TRichMemo und Tabellen

Beitrag von ps4711 »

Leider scheitere ich schon bei der Installation des Packetes :(

Aber es gibt die Eigenschaft RTF.

Hier rüber sollte man eigentlich RTF Text in die Komponente schreiben können. Also du baust dir Deine Tabellen selber in RTF zusammen.
Beispiel: Du kannst auch deine Tabelle aus Office in das RichMemo hinein kopieren und dir dann über RTF den RTF-Code anzeigen lassen bzw. auslesen. Das wäre wohl am einfachsten um schnell die die gewünschte Textform etc. zu erhalten.

Wie gesagt, konnte das leider nicht testen. Ich hoffe es funktioniert so wie beschrieben.

Antworten