Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Tabelle unter Word unsichtbar machen (https://www.delphipraxis.net/21939-tabelle-unter-word-unsichtbar-machen.html)

Seven 10. Mai 2004 14:06


Tabelle unter Word unsichtbar machen
 
Hallo zusammen,

Ich habe momentan folgendes Proble.

Ich habes es geschafft mit Word über Delphi ein Dokument zu erstellen. In diesem Dokument befindet sich eine Tabelle.

Das Problem ist, das diese Tabelle einen Rahmen besitzt, der aber nicht mit gedruckt werden soll. Weiss jemand von Euch was ich eintragen muss, damit diese Tabelle keine sichtbaren Rahmen besitzt?


Mein Quellcode:

Delphi-Quellcode:
var
  Word, WordTable, T: OLEVariant;
begin
   try
    Word := CreateOleObject('Word.Application');
  except
    ShowMessage('Cannot start Word !');
    Exit;
  end;
  // Show Word
  Word.Visible := True;
  // Add a new Document
  Word.Documents.Add;
  WordTable := word.ActiveDocument.Tables.Add(word.selection.range, NumRows := 2, NumColumns := 4);
 
  WordTable.Range.font.name := 'Tahoma';
    WordTable.Range.font.size := 10;
    WordTable.Cell(1, 1).Range.font.Bold := true;
    WordTable.Cell(1, 1).Range.Text := 'TEST';
[edit=sakura] [delphi]-Tags Mfg, sakura[/edit]

HaJo 10. Mai 2004 14:54

Re: Tabelle unter Word unsichtbar machen
 
Hallo Seven,

ich arbeite seit langem mit Delphi und steuere damit Winword und WordPerfect "fern".

Der Riesenunterschied zwischen den beiden Programmen ist der Name :-)

WordPerfect wird seinem Namen als Textverarbeitung voll und ganz gerecht - Winword hingegen ist immer noch ein besserer Editor - weil es eben "zeilenorientiert" arbeitet.

Deswegen mein Tip für Winword - benutze die VB-Macrofunktion um herauszufinden ob sich Dein Vorhaben überhaupt "automatisieren" läßt. Zeichne also einfach ein VB-Macro auf. Klappt es per VB-Macro - versuche anschließend in der Winword-Bibliothek die entsprechenden Funktionen zu finden.

Alternativ kannst Du auch mit WWApp.Run'MacroName') das vorhandene VB-Macro sofort ausführen.

Dazu ein Beispiel:

try
//Dokumentschutz ausschalten
TRY
WWDoc.ConnectTo(WWApp.Documents.Item(ItemIndex));
WWDoc.Unprotect(PWort);
except
end;
// VB-Macro ausführen
WWApp.Run('SucheNachrichtlich');
FirstTime := False;
SPBNachrichtlich.Caption := 'In nachrichtliche Textbox';
except
WWApp.Disconnect;
MessageDlg('Bitte Dokumentschutz abschalten', mtError, [mbOk], 0);
Exit;
end;

Lieben Gruß und viel Erfolg
Jochen

Niko 10. Mai 2004 15:05

Re: Tabelle unter Word unsichtbar machen
 
Zitat:

Zitat von Word-Makroaufzeichnung
Delphi-Quellcode:
WordTable.Borders(-1).LineStyle := 0; // Top
WordTable.Borders(-2).LineStyle := 0; // Left
WordTable.Borders(-3).LineStyle := 0; // Bottom
WordTable.Borders(-4).LineStyle := 0; // Right


Seven 10. Mai 2004 15:06

Re: Tabelle unter Word unsichtbar machen
 
Hallo HaJo,

danke für den Hinweis. Ich habe schon ein Marco erstellt und auch in meinem Quellcode eingebunden, doch leider verändert sich der Rahmen der Tabelle nicht. Ich weiss solangsam nicht mehr weiter. Ich mit Sicherheit irgendeine Kleinigkeit, die ich übersehen habe.

Seven 10. Mai 2004 15:17

Re: Tabelle unter Word unsichtbar machen
 
Hallo Nico,

wenn ich das eintrage

WordTable.Borders(-1).LineStyle = 0; // Top

erhalte ich als Fehlermeldung "Borders ist keinme Methode"

HaJo 10. Mai 2004 15:18

Re: Tabelle unter Word unsichtbar machen
 
Versuche es mal auf diese Art - ist allerdings ein Office2003

With Selection.Tables(1)
.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
.Borders(wdBorderRight).LineStyle = wdLineStyleNone
.Borders(wdBorderTop).LineStyle = wdLineStyleNone
.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
.Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
.Borders.Shadow = False
End With
With Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With

Niko 10. Mai 2004 16:52

Re: Tabelle unter Word unsichtbar machen
 
:oops: Ups, hab ich doch glatt vergessen bei der Zuweisung die Doppelpunkte zu ergänzen - jetzt stimmts.

Seven 11. Mai 2004 07:35

Re: Tabelle unter Word unsichtbar machen
 
danke Jungs für Eure Hilfe, aber leider klappt es immer noch nicht. Werde mir wohl etwas anderes ausdenken müssen.

Niko 11. Mai 2004 22:41

Re: Tabelle unter Word unsichtbar machen
 
:wall: Ich kopier nie wieder VBA-Code nach Delphi.

Jetzt aber endgültig die richtige Lösung (getestet):
Delphi-Quellcode:
WordTable.Borders.Item(-1).LineStyle := 0; // Top
WordTable.Borders.Item(-2).LineStyle := 0; // Left
WordTable.Borders.Item(-3).LineStyle := 0; // Bottom
WordTable.Borders.Item(-4).LineStyle := 0; // Right
Entfernt die äußere Umrandung der Tabelle.
Einfacher gehts so:
Delphi-Quellcode:
WordTable.Borders.OutsideLineStyle := 0; // äußeren Rahmen entfernen
WordTable.Borders.InsideLineStyle := 0; // innere Rahmen entfernen

HaJo 12. Mai 2004 00:03

Re: Tabelle unter Word unsichtbar machen
 
Kopieren solltest Du auch nicht (lach) - Nur die Funktionen von Winword testen :-)
Wenn es jetzt aber klappt - Gut gemacht :-)

Liebe Grüße
Jochen


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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