Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem beim Ausführen einer eigenen Com-Methode (https://www.delphipraxis.net/78234-problem-beim-ausfuehren-einer-eigenen-com-methode.html)

ustra 1. Okt 2006 13:28


Problem beim Ausführen einer eigenen Com-Methode
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

folgende Situation: Ich habe eine Anwendung in Delphi 5 (ich weiss, schon ein bißchen sehr alt) programmiert. Nun muss ich aus Excel diese aufrufen und will Werte übergeben, damit dieses Programm etwas berechnet und dann ein Ergebnis zurück liefert. Ich habe jetzt gesucht und bin auf Com-Objekte gestoßen.

Das habe ich jetzt auch soweit hinbekommen, dass ich aus Excel die Anwendung starten kann.

Ich habe eine Methode in Delphi wie folgt deklariert:

Delphi-Quellcode:
   
...
  function ausfuhr(Param1: OleVariant): OleVariant; stdcall;
...
implementation

function TBWP_Pro.ausfuhr(Param1: OleVariant): OleVariant; stdcall;
var datei :textfile;
begin
  AssignFile(datei, 'c:\datei.txt');
  Rewrite(datei);
  Writeln(datei, 'sdfdsf');
  Closefile(datei);
  ausfuhr := param1;
end;
Es scheint so, als wenn das Programm da nichts macht.

Ich rufe das Programm über folgende Zeilen in Excel auf:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim xlAnw As Project1.BWP_Pro   ' Variable für Verweis deklarieren
  Set xlAnw = CreateObject("Project1.BWP_Pro")
  Dim s As Variant
  s = xlAnw.Open("sdfdf")
  Set xlAnw = Nothing
End Sub
Ich sehe auch, dass die Anwendung geöffnet wird und auch wieder schließt ohne eine Fehlermeldung auszugeben. Zum Testen lasse ich eine Datei erstellen und es wird in c:\ keine Datei erstellt.
Es wird auch Text zurückgegeben in Excel.

Was mache ich falsch? Kann mir jemand bitte helfen.

Vielen Dank
Ulrich

Chewie 1. Okt 2006 13:55

Re: Problem beim Ausführen einer eigenen Com-Methode
 
Kann es vielleicht sein, dass deine Methode an für sich richtig funktioniert, aber dein Benutzer nicht die Rechte hat (= Nicht-Administrator), eine Datei in C:\ zu erstellen?

ustra 1. Okt 2006 14:05

Re: Problem beim Ausführen einer eigenen Com-Methode
 
Hallo,

danke für die Antwort. Das ist sehr unwahrscheinlich.

Wenn ich in Excel nach folgender Zeile

s = xlAnw.Open("sdfdf")

den Wert von s ausgegeben lasse, ist der leer. Das ist das Hauptproblem eigentlich. Ich erwarte, dass dort Text drin steht. Ich habe in Delphi folgende Zeile
Delphi-Quellcode:
ausfuhr := param1;
( im ersten Posting Zeile 14)
nach
Delphi-Quellcode:
ausfuhr := 'dgzwezer';
abgewandelt. Auch kein Rückgabewert.

Ulrich

Chewie 1. Okt 2006 14:57

Re: Problem beim Ausführen einer eigenen Com-Methode
 
Hm, ok, war ja nur eine Idee. Passiert ja nicht allzu selten, dass man an der ganz falschen Stelle sucht.


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