Ich meine es so:
Code: Alles auswählen
unit irgend-eine-komponente;
...
type
TClassProz = procedure(AParam1:integer) of object;
TEins = class(TWinControl)
public
RufeDasAusDll : TClassProz;
end;
...
begin
//hier erstelle ich die Klasse(EinObjekt) und übergebe die Adresse von EinObjekt.RufeDasAusDll zu DLL
end;
Code: Alles auswählen
library irgende-in-dll;
...
...
type
TClassProz = procedure(AParam1:integer) of object;
TDllKlasse = class(xy)
public
VonClas :TClassProz;
procedure einprozedur;
end;
procedure TDllKlasse.einprozedur;
begin
VonClas(1); //<- funktion von TEins.RufeDasAusDll wird aufgerufen
end;
procedure x(a:TClassProz);
//wird von irgend-eine-komponente aufgerufen, und sorgt dafür dass ein TDllKlasse überstellt wird
//variablen initiert werden.
Ich mache z.Z. diese Webbrowser Komponente von hier:
http://www.lazarus.freepascal.org/index ... 762.0.html
Ohne die Ereignisse zweifach oder dreifach auszuwerten wollte ich die Ereignisse aus dll direkt zu zugehörige Objekte verteilen.
Mit normalem Callback-Prozedur muß ich in der Komponenten-Unit ankommende Ereignisse an die richtigen Objekte verteilen.