Einzelnen Beitrag anzeigen

Anuschka

Registriert seit: 22. Okt 2004
19 Beiträge
 
Delphi 5 Enterprise
 
#1

Problem mit Word öffnen / Klasse

  Alt 23. Jan 2007, 10:25
Hallo zusammen,

ich habe wieder mal ein kleines Problem.
Ich möchte mit Delphi ein Word Dokument öffnen und etwas hineinschreiben.
Soweit kein Problem.

Wenn ich alles in ein Project schreibe ohne verschiedene Klassen funktioniert alles wunderbar.

Nun möchte ich aber eine Klasse mit der Graphischen Oberfläche und eine Klasse mit der Word Abwicklung haben
Und genau da läuft es vor den Baum.

Immer wenn ich das Word Dokument öffnen möchte, bekomme ich die Fehlermeldung:
Exception: EAccessViolation

Komisch ist nur, wenn ich wie gesagt das ganze nicht in Klassen trenne funktioniert es.

Ich poste euch mal beide Klassen. Vielleicht sieht einer von euch das Problem.

Die Gui.pas:
Code:
unit Gui;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, WordEx, Word2000, OleServer;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    WordApplication1: TWordApplication;
    WordDocument1: TWordDocument;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  ExpDoc : TWordExp;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var FileName, newFile: OleVariant;
begin
ExpDoc := TWordExp.Create;
ExpDoc.test;
end;

end.
und hier noch die WordEx.pas
Code:
unit WordEx;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Word97, OleServer, Word2000;

type
  TWordExp = class(TForm)
    SaveDialog1: TSaveDialog;
    WordApplication1: TWordApplication;
    WordDocument1: TWordDocument;
    Constructor Create ;
    Procedure test();
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  WordExp: TWordExp;

implementation

{$R *.DFM}

Constructor TWordExp.Create;
Begin
ShowMessage('Object wurde erzeugt!!!');
end;
Procedure TWordExp.test();
var FileName, newFile: OleVariant;
Begin
ShowMessage('OPEN WORD');
FileName := 'c:\vorlage.dot';
WordApplication1.Connect;
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
WordAppLication1.Visible := true;
end;

end.
In der WordEx.pas bringt er an folgender Stelle
WordApplication1.Connect;
die oben beschriebene Fehlermeldung.


Vielen Dank im Vorraus für Ideen
  Mit Zitat antworten Zitat