Hi,
ich glaube du könntest Recht haben (hab schon irgendwo mal so etwas gesehen) aber entweder der Fehler liegt woanders oder ich krieg das nicht hin.
Hier die geänderten Funktionen:
Delphi-Quellcode:
function SetCallback(_ctrlname:PChar;var _callbfunc:StandardEventCallback):integer; stdcall; export;
var tmpid:integer;
begin
Result:=0;
if (ControlsAliases<>nil) and (ctrlsEventCallbackFunc<>nil) then begin
tmpid:=ctrlsEventCallbackFunc.Add(@_callbfunc);
ControlsAliases.Add(_ctrlname);
end
else
Result:=-1;
end;
function GetEventCallbFuncFromLists(_ctrlname:PChar):StandardEventCallback;
var tmpid:integer;
begin
if (ControlsAliases<>nil) and (ctrlsEventCallbackFunc<>nil) then begin
tmpid:=ControlsAliases.IndexOf(_ctrlname);
if tmpid>-1 then
Result:=ctrlsEventCallbackFunc[tmpid];
end
else
Result:=nil;
end;
procedure TVCLAdaptEventHandler.CloseEventHandler(_sender:TObject;var _action:TCloseAction);
var tmpCallbFunc:StandardEventCallback;
begin
tmpCallbFunc:=GetEventCallbFuncFromLists(PChar(TControl(_sender).Name));
if Assigned(tmpCallbFunc) then
tmpCallbFunc(PChar(TControl(_sender).Name),VCLA_CLOSE,PChar(nil));
end;
Ich bin mir nicht sicher ob ich alles richtig umgeändert habe, vor allem bei der Funktion "GetEventCallbFuncFromLists".
Muss ich im C-Programm auch etwas ändern ?
Vielen Dank erstmal für deine Hilfe !
Mit freundlichen Grüßen,
Thomas