Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#10

AW: String aus DLL verschicken

  Alt 7. Jul 2020, 13:49
Im Prinzip genauso, wie mit den bekannten Event-Methoden der VCL. (Button.OnClick usw.)
Delphi-Quellcode:
// EXE

type TMyProc: procedure({s: string}); // was Selbstdeklariertes oder was Fertiges, z.B. ala TNotifyEvent, TThreadMethod oder TThreadProcedure

function SetEvent(Value: TMyProc);
  external MyDLL;

procedure MakeIt(...); // alternativ kann man auch den Event-Zeiger hier direkt übergeben
  external MyDLL;
Delphi-Quellcode:
// DLL

type TMyProc: procedure({s: string});

var Event: TMyProc; // es muß keine globale Variable sein

function SetEvent(Value: TMyProc);
begin
  Event := Value;
end;

procedure MakeIt(...); // oder sonstwo ... z.B. aus einem Thread
begin
  ...
  if Assigned(Event) then
    Event({s});
  ...
end;
Was für einen Zeiger man nimmt, dass kann man sich gern aussuchen.
Delphi-Quellcode:
type
  TMyProc: procedure({s: string}); // nur Prozeduren und statische Klassenmethoden
  TMyProc: procedure({s: string}) of object; // nur Objektmethoden und Klassenmethoden
  TMyProc: reference to procedure({s: string}); // alles
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Jul 2020 um 13:54 Uhr)
  Mit Zitat antworten Zitat