AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Rahmen in der Kopfzeile von Word zeichnen (OLE)
Thema durchsuchen
Ansicht
Themen-Optionen

Rahmen in der Kopfzeile von Word zeichnen (OLE)

Ein Thema von little_budda · begonnen am 25. Jul 2008 · letzter Beitrag vom 25. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 10:41
Hallo,

ich habe folgenden Code mit dem Makrorecorder von Word aufgezeichnet
Delphi-Quellcode:
// Dies ist VBA Code, aber als Zitat wird er leider nicht eingerückt dargestellt
    With Selection.ParagraphFormat
        .Borders(wdBorderLeft).LineStyle = wdLineStyleNone
        .Borders(wdBorderRight).LineStyle = wdLineStyleNone
        .Borders(wdBorderTop).LineStyle = wdLineStyleNone
        With .Borders(wdBorderBottom)
            .LineStyle = wdLineStyleSingle
            .LineWidth = wdLineWidth050pt
            .ColorIndex = wdAuto
        End With
        With .Borders
            .DistanceFromTop = 1
            .DistanceFromLeft = 4
            .DistanceFromBottom = 1
            .DistanceFromRight = 4
            .Shadow = False
        End With
    End With
Nun habe ich versucht ihn in Delphi umzusetzen
Delphi-Quellcode:
...

var WordApp: OLEVariant;

...

  With WordApp.Selection.ParagraphFormat do
    begin
      Borders(-2 {=wdBorderLeft}).LineStyle := 0; // = wdLineStyleNone
      Borders(-4 {=wdBorderRight}).LineStyle := 0; // = wdLineStyleNone
      Borders(-1 {=wdBorderTop}).LineStyle := 0; // = wdLineStyleNone
      With Borders(-3 {=wdBorderBottom}) do
        begin
          LineStyle := 1; // = wdLineStyleSingle
          LineWidth := 4; // = wdLineWidth050pt
          ColorIndex := 0; // = wdAuto
        end;
      With Borders do
        begin
          DistanceFromTop := 1;
          DistanceFromLeft := 4;
          DistanceFromBottom := 1;
          DistanceFromRight := 4;
          Shadow := False;
        end;
    end;
Beim Compilieren bringt mir die IDE immer einen fehler "Record, Objekt oder Klassentyp erforderlich" bei
With WordApp.Selection.ParagraphFormat do Was bitte mache ich denn falsch?

Gruß Holger.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#2

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 11:41
Ich würde grundsätzlich erstmal auf das Aufhübschen mit "with" verzichten, das macht das Debuggen leichter.

Dann würde ich nicht per Variant Word einbinden, weil das einfach nur viiiieeeel zu langsam ist. Es gibt doch in Delphi MS-Office Komponenten, falls nicht, kannst Du die OLE-Server selber einbinden. Nimm die, da ist dann alles dabei was Du brauchst, und Codecompletion funktioniert auch.

Edit: Mal davon abgesehen, ist "Selection" eine Property von Document oder ActiveDocument. Du gehst aber auf WordApp. Du müsstest also WordApp.ActiveDocument.Selection verwenden.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 11:46
Hallo,

Zitat:
Du müsstest also ...
WordApp.ActiveDocument.Selection
... verwenden.
Habe ich schon im Vorfeld probiert.
Es wird derselbe Fehler erzeugt.

[Edit]
Die Variante ohne With habe ich auch schon hinter mir.
Bsp: WordApp.Selection.ParagraphFormat.Borders(-2 {=wdBorderLeft}).LineStyle := 0; // = wdLineStyleNone
Klappt auch nicht.
[/Edit]
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 13:58
Ich habe mich vertan, die Fehlemeldung ist nicht dieselbe.
Bei der variante ohne With
WordApp.Selection.ParagraphFormat.Borders(-2 {wdBorderLeft}).LineStyle := 0; // = wdLineStyleNone kommt : "Borders ist keine Methode".
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#5

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 14:18
Dann setzt die Parameter von Borders in eckige Klammern. Borders ist eine Aufzählung der Border-Objekte.

Vergleiche dazu die VB-Hilfe:
Zitat:
Borders-Eigenschaft
Gibt eine Borders-Auflistung zurück, die alle Rahmen für das angegebene Objekt repräsentiert.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 14:58
Ne, klappt auch nicht
Mit
  WordApp.Selection.ParagraphFormat.Borders[-2].LineStyle := 0; Erhalte ich "Items ist keine Eigenschaft".
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#7

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 15:16
Argh...ich erinnere mich, daß das viel rumgespiele war. Wie siehts mit Borders.Border[-2] aus?

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 15:20
Resultat:
"Die Methode 'Border' wird vom Automatisierungsobjekt nicht unterstützt.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 15:29
Hallo zusammen,

wahrscheinlich dummer Einwand aber -2 als Index?

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#10

Re: Rahmen in der Kopfzeile von Word zeichnen (OLE)

  Alt 25. Jul 2008, 15:33
Das ist lediglich die Übersetzung der Konstanten
wdBorderLeft ist dann halt -2

Das hat sich einer von Bills Jungs ausgedacht.

Edit: Macht aber natürlich Probleme, weil negative Indizes a bisserl problematisch sein dürften. Oh weh....ich kram mal mein altess Word-Projekt raus.

Sherlock
Oliver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz