Hallo zusammen,
wir verwenden in unserer Firma die Labelling Software Codesoft.
Codesoft bietet eine Typenbibliothek (
ActiveX) an die man sich in Delphi integrieren kann (als Komponente).
Hierzu hat vor einiger Zeit ein Kollege (der mittlerweile die Firma verlassen hat) noch zusätzlich eine
Unit Programmiert über die man auf die Codesoft Funktionen zugreifen kann.
Gestern habe ich auf meinem Rechner eine neue Version von Codesoft installiert. Alles funktioniert wunderbar bis auf das Beenden meines Programmes.
Beim Start meines Programmes wird Codesoft wie folgt mitgestartet:
Delphi-Quellcode:
//Create Codesoft Proxy
Try
Codesoft := TCodesoftProxy.create(sDefaultFieldList, sDefaultFieldDSC , sDefaultBMP);
Bitmap := TPicture.Create;
Except
On E:
Exception Do
Begin
MessageDlg(E.
Message, mtError, [mbOK], 0);
End;
End;
//Initialize Codesoft
Try
Codesoft.initialize;
Except
On E:
Exception Do
Begin
MessageDlg(E.
Message, mtError, [mbOK], 0);
End;
End;
End;
Beim schließen meines Programmes wird Codesoft wie folgt beendet:
Delphi-Quellcode:
//Free Codesoft
If Codesoft <> nil Then
Begin
Try
//Codesoft.Free;
FreeAndNil(Codesoft);
Except
fnCloseProgram('Lppa.exe');
MessageDlg('Could not release Codesoft! Check your TaskManager!!!', mtError, [mbOK], 0);
End;
End;
Im angehängten Bild seht ihr den Fehler den ich beim Schließen meines Programmes erhalte...
Das kuriose ist, ich habe ein Test Tool das auf die selbe Art & Weise Codesoft startet und beendet, hier erhalte ich diesen Fehler nicht !
Anbei der Code...
Codesoft starten:
Delphi-Quellcode:
try
codesoftProxy := TcodesoftProxy.create(edit3.text, Edit4.text, edit5.text);
Label1.Caption := '
Created';
except
on e :
Exception do
messageDLG(e.
Message, mtInformation, [mbOk], 0);
end;
try
codesoftProxy.initialize;
Label1.Caption := '
Initialized';
except
on e :
Exception do
messageDLG(e.
Message, mtInformation, [mbOk], 0);
end;
Codesoft schließen:
Delphi-Quellcode:
try
freeandnil(codesoftProxy);
Image1.Picture :=
nil;
Label1.Caption := '
Freed';
except
on e :
Exception do
messageDLG(e.
Message, mtInformation, [mbOk], 0);
end;
Hat jemand eine Idee was falsch laufen könnte?