Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Methodpointer - wie funktioniert's?

  Alt 3. Feb 2007, 19:17
Hi,

der harte TypeCast dürfte aber zu einer Exception führen. Besser wäre es so:

Delphi-Quellcode:
function callMyFunc(name: string): TResultType;
var funcWrapper: IFunction;
begin
  if Supports(GlobalDict.Lookup(name), IFunction, funcWrapper) then
    result := funcWrapper.doWork(ExtendedArgument)
  else
    result := ...
end;
Voraussetzung für den Einsatz der Funktion Supports ist aber, daß die Interfaces eine eindeutige GUID besitzen:

Delphi-Quellcode:
type
  IFunction = interface
    ['{4C30EFEE-10A6-4B88-919E-9CD12673572F}']
    function doWork(const argument: Extended): TResultType;
  end;
Diese kann man im Editor über die Tastenkombination [Umsch][Strg][G] leicht erzeugen lassen.

Gruß Hawkeye
  Mit Zitat antworten Zitat