AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Problem beim Ausführen einer eigenen Com-Methode

Problem beim Ausführen einer eigenen Com-Methode

Ein Thema von ustra · begonnen am 1. Okt 2006 · letzter Beitrag vom 1. Okt 2006
Antwort Antwort
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#1

Problem beim Ausführen einer eigenen Com-Methode

  Alt 1. Okt 2006, 14:28
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
Angehängte Dateien
Dateityp: zip project1_103.zip (14,6 KB, 1x aufgerufen)
Ulrich Strauer
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

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

  Alt 1. Okt 2006, 14:55
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?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
ustra

Registriert seit: 12. Mär 2003
Ort: Geesthacht
138 Beiträge
 
Delphi 5 Professional
 
#3

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

  Alt 1. Okt 2006, 15:05
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 ausfuhr := param1; ( im ersten Posting Zeile 14)
nach ausfuhr := 'dgzwezer'; abgewandelt. Auch kein Rückgabewert.

Ulrich
Ulrich Strauer
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

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

  Alt 1. Okt 2006, 15:57
Hm, ok, war ja nur eine Idee. Passiert ja nicht allzu selten, dass man an der ganz falschen Stelle sucht.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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