![]() |
Textbox in Word erstellen
Hallo,
ich möchte in Word eine Textbox erstellen und sie mit Inhalt füllen. Leider kann man dies nicht über ein Makro machen. Office XP lässt mich beim Makro-Aufzeichnen keine Textbox erstellen. Danach hab ich einfach mal mit Shapes probiert, aber es kommt folgende Fehlermeldung: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Word.exe ist eine Exception der Klasse EOleError mit der Meldung 'Die Methode 'Shapes' wird vom Automatisierungsobjekt nicht unterstützt' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe --------------------------- Ich greife folgendermaßen auf Word zu:
Delphi-Quellcode:
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.... ShowMessage('Word kann nicht geöffnet werden.'); Exit; end; // Show Word // Word anzeigen WordApp.Visible := True; // Add a new Doc // Neues Dok einfügen NewDoc := WordApp.Documents.Add; WordApp.Selection.MoveDown(wdLine, 1); WordApp.Selection.TypeParagraph; WordApp.Selection.ParagraphFormat.Alignment:= wdAlignParagraphLeft; WordApp.Selection.Shapes.AddTextbox(1,20,10,50,10); //shp := Shapes.AddTextbox(1,20,10,50,10); //shp.TextFrame.Characters(1, 200).Text := 'Hello'; //WordApp.Shapes.AddTextBox(1,30,50,200, 100,EmptyParam); // Ansicht //WordApp.ActiveWindow.ActivePane.View.Type := 3; // 0 = wdPortrait, 1 = wdLandScape //WordApp.Selection.PageSetup.Orientation := 1; WordApp.ActiveDocument.SaveAs(ExtractFilePath(Application.ExeName) + 'test.doc'); //Close Word //WordApp.DisplayAlerts := 0; //WordApp.Documents.Item(1).Save; //WordApp.Quit; // Cleanup... WordApp := Unassigned; NewDoc := Unassigned; WordTable := Unassigned; end; Ich weiß echt nicht weiter! Kann man auch noch anders mit Word kommunizieren? Weil die ausgeklammerte Lösung mit shp := ... hab ich mir irgendwo abgeschaut, aber Shapes kennt er ja anscheinend doch nicht... vielen Dank gruß Timelesk |
Re: Textbox in Word erstellen
Hallo,
ich würde es mal so probieren:
Delphi-Quellcode:
Grüße vom marabu
NewDoc := WordApp.Documents.Add;
shp := NewDoc.Shapes.AddTextbox(1,20,10,50,10); |
Re: Textbox in Word erstellen
Hallo marabu,
vielen Dank. Jetzt funktioniert es. Ich bin gerade dabei mich in die Sache einzuarbeiten und ein wenig am rummspielen. Bei Delphi gibt es doch immer diese Live-Hilfe. Wenn du Edit1. eingibst, popt doch gleich ein Fenster auf und zeigt dir die Möglichkeiten für das Edit-Feld an. Wenn ich jetzt aber NewDoc. eingebe, schlägt mir Delphi lediglich Templates vor und keine Funktionen, Eigenschaften oder so etwas. Ist das normal oder gibt es dafür (Ab-)Hilfe? gruß Timelesk |
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Windows 9x / ME / 2000 / XP / 2003 / Vista" nach "Sonstige Fragen zu Delphi" verschoben.
Das ist kein Windows-Problem... |
Re: Textbox in Word erstellen
Ja das ist sehr wohl normal, denn diese Hilfe häng u.a. von der Typ der Variable. Ist deine Variable "untypisiert" wie z.B. Variant oder OLEVariant, dann gibt es keine Hilfe in dem Sinne.
|
Re: Textbox in Word erstellen
Es ist "normal" - und es gibt Abhilfe: Du musst von "später" zu "früher" Bindung wechseln. Sobald du nicht mehr mit OleVariant-Typen arbeitest, sondern direkt mit den relevanten Schnittstellenzeigern, hast du auch wieder die Code-Vervollständigung in der IDE.
Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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