Entwickler-Ecke

Sonstiges (Delphi) - Programm reseten?


Lexus - Do 07.11.02 14:39
Titel: Programm reseten?
Moin,

also ich hab folgendes Problem:
Ich habe eine Anwedung erstellt die Daten in ein Word-Dokument einliest und dort ausgiebt. Haken an der Sache ist leider das man das nur einmal machen kann, danach muss man das Programm neustarten um ne weitere Übernahme zu machen. Wenn man das nicht macht -> Error und alles hängt sich auf.

Nu meine Frage: Weiss einer wie man es machen kann das Delphi mehrmals etwas übernimmt?

Dachte da vielleicht an einen reset Button der das Programm wieder in den Urzustand zurück setzt, aber irgendwie krieg ich den net hin. Viele Dank für die Hilfe im Vorraus!

Gruß,
Dennis


Keldorn - Do 07.11.02 15:07
Titel: Re: Programm reseten?
Lexus hat folgendes geschrieben:

Haken an der Sache ist leider das man das nur einmal machen kann, danach muss man das Programm neustarten um ne weitere Übernahme zu machen. Wenn man das nicht macht -> Error und alles hängt sich auf.


Hallo, dann wirst du wohl was falsch gemacht haben.

was für ein Fehler erscheint denn genau ???

z.B. wenn Du mit Word arbeitest könnte z.b. erscheinen "Der RPC-Server ist nicht mehr verfügbar" erscheinen, dann hast du dich irgendwo mit connect / disconnect verhaspelt.

Beschreib mal deinen Fehler genauer

Frank


Lexus - Do 07.11.02 16:12

ja genau der Fehler kommt: RPC-Server ist nicht mehr Verfügbar...

hmm glaub aber nicht das ich mich verhaspelt habe, hier mal der code:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button1Click(Sender: TObject);
var
Filename:OleVariant;
vwhat, vBookmark: OleVariant;
begin

     if Opendialog1.Execute then
        Filename := Opendialog1.Filename
     else
         exit;

vwhat:=wdGoToBookmark;
WordApplication1.Connect;
WordApplication1.Documents.OpenOld(Filename, EmptyParam, EmptyParam
                                   , EmptyParam, EmptyParam, EmptyParam
                                   , EmptyParam, EmptyParam, EmptyParam
                                   , EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
WordApplication1.Visible := True;

vBookmark:='Titel';
WordApplication1.Selection.GoTo_(vwhat, EmptyParam, EmptyParam,VBookmark);
WordApplication1.Selection.TypeText(Edit1.Text);


kann das irgendwie mit diesen OpenOld zusammenhängen? habs mir aus nem Tutorial zusammegeschustert...


Keldorn - Do 07.11.02 17:12

Hallo

Lexus hat folgendes geschrieben:

hmm glaub aber nicht das ich mich verhaspelt haben


doch hast Du (zumindestens haste das Ende der Proc nich gepostet)
jedem Connect muß auch disconnect folgen, sowohl fürs wordapplication und Wordocument, ein mehrfaches Connect nützt hier nix .

"RPC-Server ist nicht verfügbar" - hier wurde das Word geschlossen, disconnect wird anscheinend nicht automatisch aufgerufen.
"Das Object wurde von den Clients"getrennt - hier haste das Worddocument geschlossen, auch wird disconnect nicht automatisch aufgerufen.

füge am ende der Proc folgendes ein:

Quelltext
1:
2:
WordDocument1.DisConnect;
Wordapplication1.disconnect;


MFG Frank


Lexus - Di 12.11.02 11:28

juhu es klappt! Danke für die Hilfe....

und entschuldigt die ganzen Rechtschreibfehler, weiss auch net was los war, wahrscheinlich überarbeitet :roll: