![]() |
Stringgrid nach Word - Formatierung?
Ist es möglich einzelne Sätze des übertragenen Stringgrids zu formatieren?
Delphi-Quellcode:
uses
ComObj; procedure TForm1.Button1Click(Sender: TObject); var WordApp, NewDoc, WordTable: OLEVariant; iRows, iCols, iGridRows, jGridCols: Integer; begin try // Create a Word Instance // Word Instanz erzeugen WordApp := CreateOleObject('Word.Application'); except // Error... // Fehler.... Exit; end; // Show Word // Word anzeigen WordApp.Visible := True; // Add a new Doc // Neues Dok einfügen NewDoc := WordApp.Documents.Add; // Get number of columns, rows // Spalten, Reihen ermitteln iCols := StringGrid1.ColCount; iRows := StringGrid1.RowCount; // Add a Table // Tabelle einfügen WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows); // Fill up the word table with the Stringgrid contents // Tabelle ausfüllen mit Stringgrid Daten for iGridRows := 1 to iRows do for jGridCols := 1 to iCols do WordTable.Cell(iGridRows, jGridCols).Range.Text := StringGrid1.Cells[jGridCols - 1, iGridRows - 1]; // Here you might want to Save the Doc, quit Word... // Hier evtl Word Doc speichern, beenden... // ... // Cleanup... WordApp := Unassigned; NewDoc := Unassigned; WordTable := Unassigned; end; |
Re: Stringgrid nach Word - Formatierung?
Ja. Für Details lass dir den Foramtierungsvorgang in Word aufzeichnen und schau dir den erzeugten VBA Code an
|
Re: Stringgrid nach Word - Formatierung?
Hallo...das funktioniert ja, weiß ich.
Es soll aber gleich beim übertragen vom Stringgrid nach Word bestimmte Wörter oder Sätze formatiert werden! Beispiel: Im Text des Stringgrids steht irgendwo: "Hurz- das LAmm". Dieser Text soll in Word Fett angezeit werden. |
Re: Stringgrid nach Word - Formatierung?
Einen String nach bestimmten Wörtern zu durchsuchen sollte kein Problem darstellen.
Oder was ist genau dein Problem/Frage? |
Re: Stringgrid nach Word - Formatierung?
Stimmt, da hast du Recht.
Ich bin immer nur von der Möglichkeit ausgegangen das gesuchte zu formatierende Wort gleich bei der Übertragung zu formatieren. Ich kann es evtl. ja auch im Nachhinein in Word formatieren. Obwohl der Vorgang dann noch länger dauern wird und ich gerade auch nicht weiß wie das geht. |
Re: Stringgrid nach Word - Formatierung?
Meine Frage war aber eher so gemeint dass während mein Code nach Word kopiert bestimmte Wörter (direkt beim einfügen in Word)formatiert werden, nicht im Nachhinein.
|
Re: Stringgrid nach Word - Formatierung?
Das Einfügen in das Worddokument über das Stringgrid funktioniert ja.
Im Nachinein könnte die Formatierung im Worddokument hinbekommen, nachdem das Stringgrid schon eingefügt wurde. aber quasi während der Übertragung bevor das Stringgrid in das Worddokument eingefügt wird ist das Problem. Wie würdet ihr das machen? Habt ihr evtl ein praktisches Beispiel für mich? Suchende Grüße Capo |
Re: Stringgrid nach Word - Formatierung?
Hallo...ich brauche wirklich mal ein Feedback und auch ein praktisches Besipiel.
Lasst mich nicht hängen! |
Re: Stringgrid nach Word - Formatierung?
Hallo Capo,
ich hatte mal ein ähnliches Problem, nur Hoch-/Tiefstellung anstatt Fett. Dieses Beispiel schreibt an die Textmarke "Position" die Zeichenfolge "Zeichenfolge", dabei werden alle Ziffern tiefgestellt. (Die Routine geht davon aus, daß Word bereits läuft und das Dokument bereits geladen ist.)
Delphi-Quellcode:
Du müßtest IMHO nur wenig anpassen.
Procedure DatenNachWord(Position, Zeichenfolge: String)
var wrd : OLEVAriant; doc : OLEVAriant; bkm : OLEVAriant; n : String; j : Integer; ... begin wrd := GetActiveOLEObject('Word.Application'); // mit aktuellem Word verbinden doc := wrd.activedocument; // mit aktivem Dokument verbinden ... bkm := doc.bookmarks.Item(Position).Range.Select; // Textmarke suchen und selektieren wrd.selection.TypeText(Zeichenfolge); // Text an selektierter Position schreiben wrd.selection.MoveLeft(1, Length(Zeichenfolge), 1); // eingefügten Text wieder selektieren doc.bookmarks.add(Position, wrd.selection.range); // Textmarke neu festlegen bkm := doc.bookmarks.Item(Position).Range.Select; // Textmarke (sicherheitshalber) neu selektieren, evtl. ist diese Zeile überflüssig !!! wrd.selection.moveleft( 1 , 1, 0); // An den Anfang des selektierten Textes gehen n := Zeichenfolge; // Text in eine Variable holen If n <> '' Then // Leere Zeichenfolge ? for j := 1 to Length(n) do begin wrd.Selection.moveRight(1, 1, 1); // Ein Zeichen nach rechts auswählen If ((n[j] >= '0') And (n[j] <= '9')) Then // Zeichen abfragen wrd.Selection.Font.Subscript := True // hochstellen Else wrd.Selection.Font.Subscript := False; // nicht hochstellen end; ... end; Gruß aus Köln Thomas |
Re: Stringgrid nach Word - Formatierung?
DANKE!!!!!!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz