Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Multi-Event-Liste

  Alt 5. Dez 2016, 12:46
Jup...weiß ich. Bin inzwischen ein wenig weiter gekommen.

Statt der Methode aus der ObjAuto, verwend ich deine Routine aus DSharp.

Dabei bau ich den PParameters selbst zusammen, anhand der Typen.

Delphi-Quellcode:
  //Fillup PParameters for calling the method and handling the stack
  //and calculating the Stacksize
  New(para);
  fillchar(para^,sizeof(para^),0);
  StackSize := 0;
  sc := 0;
  for i := MethSig.paramCount-1 downto 1 do
  begin
    case MethSig.Parameters[i].Location of
       plEDX : para^.Registers[plEDX] := GetValueAsCardinal(params[i-1]);
       plECX : Para^.Registers[plECX] := GetValueAsCardinal(params[i-1]);
    ELSE
      if(MethSig.Parameters[i].Location > plECX) then
      begin
        v := @params[i-1];
        MoveValue(v,para,stacksize);
      end;
    end;
  end;
  InvokeMethod(Method,para,stacksize);
  dispose(para);
Aufruf:

fevents.Execute('TEventType6',[150,333,42,true,'Wuptidupti']); Das Problem ist der 3 Parameter im Array (also die 42), die wird einfach mit 0 übergeben. Der Rest passt.
Uwe
e=mc² or energy = milk * coffee²

Geändert von Ghostwalker ( 5. Dez 2016 um 12:49 Uhr) Grund: Code-Fehler...der Move von Self am anfang tut nicht wirklich
  Mit Zitat antworten Zitat