Einzelnen Beitrag anzeigen

Unplugged

Registriert seit: 14. Apr 2004
Ort: Leipzig
125 Beiträge
 
Delphi 6 Enterprise
 
#1

ListBox als TObject an Dll-PlugIn

  Alt 18. Aug 2005, 10:00
Hallo,

ich versuche gerade, eine PlugIn-Schnittstelle zu konstruieren.
Allerdings im Moment noch ohne Interface's.

Die Kommunikation mit der Dll funktioniert auch, und bringt erstmal keine Probleme.
Ich habe zusätzlich in der Dll einen Eventhandler drin, den die Applikation beispielsweise bei einem
Klick aufruft. Speziell befindet sich in der Applikation eine TListBox, bei der die OnClick-Methode wie folgt genutzt wird:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  Self.RunEvent(evnClickItem, Sender);
end;

function TForm1.RunEvent(EventNotification: TEventNotification; Sender: TObject): Boolean;
// ...
      if FPlugIns[I].PlugIn.EventHandler(EventNotification, Sender) = evnAbort then
// ...
end;
In der Dll wird das Event wie folgt verarbeitet:
Delphi-Quellcode:
function TPlugTest.EventHandler(EventNotification: TEventNotification;
                                Sender: TObject): TEventAction;
Var
  ListBox1 : TListBox;
begin
  if ( EventNotification = evnClickItem ) then begin
    ListBox1 := TListBox(Sender);
    ListBox1.Items.Strings[ListBox1.ItemIndex] :=
        ListBox1.Items.Strings[ListBox1.ItemIndex] + '1';
  end;
  Result := evnOk;
end;
Wie man sieht, macht die Funktion nicht wirklich was sinnvolles, aber zu Demonstrationszwecken reicht es.

Was ist nun das Problem?!
Das ganze funktioniert leider nur 4 Mal. D.h. ich klicke zum Testen immer wieder auf das gleiche Element. Beim fünften Mal ( also 4 Einsen wurden schon angehangen ), kommt auf einmal eine Access Violation.

Jemand eine Idee, woran das Liegen kann ?
  Mit Zitat antworten Zitat