Einzelnen Beitrag anzeigen

Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

FreeAndNil Problem

  Alt 11. Apr 2012, 11:09
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?
Miniaturansicht angehängter Grafiken
codesofterror.jpg  
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat