Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Word Komponenten


berni - Mo 10.03.03 11:47
Titel: Word Komponenten
Hallo,

kennt jemand irgendwo eine DOKU, die die ganzen unter Delphi einsetzbaren WORD-Befehle mal dokumentiert ?

Leider bin ich blutiger Anfänger und schaffe es einfach nicht die WordMacros in entsprechende Delphi-Befehle zu übersetzen.

Beispiel:
MACRO:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Sub Makro1()
'
    Options.DefaultBorderLineWidth = wdLineWidth225pt
    Options.DefaultBorderColor = wdColorGold
    With Selection.Borders(wdBorderBottom)
        .LineStyle = Options.DefaultBorderLineStyle
        .LineWidth = Options.DefaultBorderLineWidth
        .Color = Options.DefaultBorderColor
    End With
    Selection.TypeText Text:="xxxxx"
    Selection.TypeParagraph
    Selection.TypeBackspace
End Sub

Was ich kann ist:

Quelltext
1:
2:
3:
4:
5:
6:
WordApplicationAngebot.Selection.Borders.Enable := integer(True);
WordApplicationAngebot.Selection.Font.Bold := integer(True);
WordApplicationAngebot.Selection.TypeText(oraqAGPrint.FieldAsString('PRODUKTGRUPPE') + #13);
WordApplicationAngebot.Selection.Font.Bold := integer(False);
WordApplicationAngebot.Selection.TypeText(oraqAGPrint.FieldAsString('BESCHREIBUNG') + #13);
....

Was ich aber absolut nicht hinbekomme ist, den Border Style auf "nur unten" zu setzen, die Farbe auf Orange und dass auch noch ausschliesslich für die ERSTE Zeile zu machen.

Wenn ich mit

Quelltext
1:
WordApplicationAngebot.Selection.Borders.Enable := integer(False);                    

das nach der ersten Zeile Text wieder ausschalte, dann ist auch alles weg. Wenn ich es nicht ausschalte dann ist aber alles mit Border umgeben und das will ich auch nicht.

Hilfe ... das bringt mich noch alles um den Verstand ....

Gruss,
Bernd

Moderiert von user profile iconTino: Code-Tags hinzugefügt.


Keldorn - Mo 10.03.03 12:59

Hallo,

Zitat:

kennt jemand irgendwo eine DOKU, die die ganzen unter Delphi einsetzbaren WORD-Befehle mal dokumentiert ?

nicht direkt für Delphi, aber wenn du die serverkompos einsetzt, kannst du die Codevervollständigung nutzen oder schaust dir den Source an (OCX/Servers/WordXXX) (hilft dir sehr!).
was die Befehle bedeuten, kannst du in der VB-Hilfe nachlesen

das mit den Makros aufzeichnen und nach Delphi versuchen umzusetzen, machst du richtig.


Zitat:

Sub Makro1()
...
With Selection.Borders(wdBorderBottom)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
...


auf Border-Eigenschaft kannst du so zugreifen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
Var _Borders:Borders;
    _border:border;
begin
_borders := word.Selection.Borders;
_border  :=_borders.item(wdBorderbottom);
_border.LineStyle :=wdLineStylesingle;

oder

border(word.Selection.Borders.Item(wdBorderbottom)).LineStyle := wdLineStylesingle;

oder

with border(word.Selection.Borders.Item(wdBorderbottom)) do
  begin
    LineStyle := ...
    LineWidth := ...
  end;


Mfg Frank


berni - Mo 10.03.03 13:41

Hallo,

mein Problem ist jetzt den wdBorderBottom auch einzuschalten !

Wenn ich mit

Quelltext
1:
WordApplicationAngebot.Selection.Borders.Enable := integer(False);                    

den Border enable, dann ist der komplett um die Zeile rum, also der falsche Typ. Wie klann jetzt aber nirgend den wdBorderBotom aktivieren.

Source Code habe ich leider nicht, ich habe nur die dcloffice2k50.bpl eingebunden. ;-(

Moderiert von user profile iconTino: Code-Tags hinzugefügt.


berni - Mo 10.03.03 15:34

Auflösung:

Quelltext
1:
2:
3:
WordApplicationAngebot.Selection.Borders.Item(wdBorderLeft).LineStyle := vLineStyleNone;
WordApplicationAngebot.Selection.Borders.Item(wdBorderRight).LineStyle := vLineStyleNone;
WordApplicationAngebot.Selection.Borders.Item(wdBorderTop).LineStyle := vLineStyleNone;

und zwar NACH !!!!!!! dem

Quelltext
1:
WordApplicationAngebot.Selection.Borders.Enable := integer(True);                    

Das geht dann ....
Ist krank abartig und pervers, aber es geht ....

Moderiert von user profile iconTino: Code-Tags hinzugefügt.