Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für Borland Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
Rahmen in der Kopfzeile von Word zeichnen (OLE)
Ein Delphi (Win32)-Thema von little_budda.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Sonstige Fragen zu Delphi
Seite 1 von 1   [ 12 Beiträge ]  
 
 Autor 
 Nachricht 
 
little_budda #1|Beitrag #920498Verfasst am: 25.07.2008, 10:41      Titel: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
Mitglied
Alter: 39
Status: offline
Beiträge: 192
angemeldet: 05.05.2006
Wohnort: Velbert
Delphi 2006 Professional

Sprache: Delphi (Win32)

Hallo,

ich habe folgenden Code mit dem Makrorecorder von Word aufgezeichnet
Delphi-Quellcode: zusammenfalten | markieren
// 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: zusammenfalten | markieren
...

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
Delphi-Quellcode: markieren
With WordApp.Selection.ParagraphFormat do

Was bitte mache ich denn falsch?

Gruß Holger.
Grübelnd...

Glück findet sich nicht im Code Smile
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Sherlock #2|Beitrag #920509Verfasst am: 25.07.2008, 11:41      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
aktives Mitglied
Alter: 38
Status: offline
Beiträge: 303
angemeldet: 10.01.2006
Wohnort: Offenbach
Delphi 7 Professional

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
Delphi-Quellcode: markieren
WordApp.ActiveDocument.Selection
verwenden.

Sherlock

 Zuletzt bearbeitet von Sherlock am 25.07.2008, 11:43, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
little_budda #3|Beitrag #920510Verfasst am: 25.07.2008, 11:46      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
Mitglied
Alter: 39
Status: offline
Beiträge: 192
angemeldet: 05.05.2006
Wohnort: Velbert
Delphi 2006 Professional

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]

Glück findet sich nicht im Code Smile
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...

 Zuletzt bearbeitet von little_budda am 25.07.2008, 11:49, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
little_budda #4|Beitrag #920541Verfasst am: 25.07.2008, 13:58      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
Mitglied
Alter: 39
Status: offline
Beiträge: 192
angemeldet: 05.05.2006
Wohnort: Velbert
Delphi 2006 Professional

Ich habe mich vertan, die Fehlemeldung ist nicht dieselbe.
Bei der variante ohne With
Delphi-Quellcode: markieren
WordApp.Selection.ParagraphFormat.Borders(-2 {wdBorderLeft}).LineStyle := 0; // = wdLineStyleNone

kommt : "Borders ist keine Methode".

Glück findet sich nicht im Code Smile
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Sherlock #5|Beitrag #920543Verfasst am: 25.07.2008, 14:18      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
aktives Mitglied
Alter: 38
Status: offline
Beiträge: 303
angemeldet: 10.01.2006
Wohnort: Offenbach
Delphi 7 Professional

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

 Zuletzt bearbeitet von Sherlock am 25.07.2008, 14:20, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
little_budda #6|Beitrag #920547Verfasst am: 25.07.2008, 14:58      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
Mitglied
Alter: 39
Status: offline
Beiträge: 192
angemeldet: 05.05.2006
Wohnort: Velbert
Delphi 2006 Professional

Ne, klappt auch nicht
Mit
Delphi-Quellcode: markieren
WordApp.Selection.ParagraphFormat.Borders[-2].LineStyle := 0;

Erhalte ich "Items ist keine Eigenschaft".

Glück findet sich nicht im Code Smile
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Sherlock #7|Beitrag #920552Verfasst am: 25.07.2008, 15:16      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
aktives Mitglied
Alter: 38
Status: offline
Beiträge: 303
angemeldet: 10.01.2006
Wohnort: Offenbach
Delphi 7 Professional

Argh...ich erinnere mich, daß das viel rumgespiele war. Wie siehts mit Borders.Border[-2] aus?

Sherlock
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
little_budda #8|Beitrag #920553Verfasst am: 25.07.2008, 15:20      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
Mitglied
Alter: 39
Status: offline
Beiträge: 192
angemeldet: 05.05.2006
Wohnort: Velbert
Delphi 2006 Professional

Resultat:
"Die Methode 'Border' wird vom Automatisierungsobjekt nicht unterstützt.
Grübelnd...

Glück findet sich nicht im Code Smile
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
p80286 #9|Beitrag #920555Verfasst am: 25.07.2008, 15:29      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
sehr aktives Mitglied
Status: offline
Beiträge: 98
angemeldet: 28.04.2008
Wohnort: Düsseldorf
Delphi 7 Personal

Hallo zusammen,

wahrscheinlich dummer Einwand aber -2 als Index?

Gruß
K-H
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Sherlock #10|Beitrag #920558Verfasst am: 25.07.2008, 15:33      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
aktives Mitglied
Alter: 38
Status: offline
Beiträge: 303
angemeldet: 10.01.2006
Wohnort: Offenbach
Delphi 7 Professional

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

 Zuletzt bearbeitet von Sherlock am 25.07.2008, 15:40, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
little_budda #11|Beitrag #920567Verfasst am: 25.07.2008, 15:44      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
Mitglied
Alter: 39
Status: offline
Beiträge: 192
angemeldet: 05.05.2006
Wohnort: Velbert
Delphi 2006 Professional

Ich habs.
So gehts
Delphi-Quellcode: markieren
WordApp.Selection.ParagraphFormat.Borders.item(-2).LineStyle := 0;

Danke für die Hilfe

Glück findet sich nicht im Code Smile
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
p80286 #12|Beitrag #920585Verfasst am: 25.07.2008, 17:09      Titel: Re: Rahmen in der Kopfzeile von Word zeichnen (OLE) Antworten mit Zitat
sehr aktives Mitglied
Status: offline
Beiträge: 98
angemeldet: 28.04.2008
Wohnort: Düsseldorf
Delphi 7 Personal

Hallo Little_budda,

Du warst eine ganze Ecke schneller als ich. Hier meine Version (index als Hex-Darstellung).
Delphi-Quellcode: zusammenfalten | markieren
msword.Selection.ParagraphFormat.Borders.item($FFFFFFFE).LineStyle:= 0;

  msword.Selection.ParagraphFormat.Borders.item($FFFFFFFC).LineStyle:= 0;
  msword.Selection.ParagraphFormat.Borders.item($FFFFFFFF).LineStyle:= 0;


  msword.Selection.ParagraphFormat.Borders.item($FFFFFFFD).LineStyle := 1 ;
  msword.Selection.ParagraphFormat.Borders.item($FFFFFFFD).LineWidth := 4 ;
  msword.Selection.ParagraphFormat.Borders.item($FFFFFFFD).ColorIndex := 0;

  msword.Selection.ParagraphFormat.Borders.DistanceFromTop := 1;
  msword.Selection.ParagraphFormat.Borders.DistanceFromLeft := 4 ;
  msword.Selection.ParagraphFormat.Borders.DistanceFromBottom := 1;
  msword.Selection.ParagraphFormat.Borders.DistanceFromRight := 4 ;
  msword.Selection.ParagraphFormat.Borders.Shadow := False       ;




Grüße
K-H
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Sonstige Fragen zu Delphi Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 12 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2008 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen