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