Einzelnen Beitrag anzeigen

a.def
(Gast)

n/a Beiträge
 
#1

Prozedur einer Variablen zuweisen

  Alt 17. Jan 2017, 12:42
Ich habe eine grundlegende Frage zu einem Problem.

Statt in einer bestimmten Funktion (Schleife) X-Mal ein Case aufzurufen in welchen entschieden wird ob Func1, Func2 oder Func3 verwendet wird, möchte ich gerne zuvor (vor der Schleife) Func1 2 oder 3 einer Variablen zuweisen.

Von StackOverflow:
Delphi-Quellcode:
interface

type
  TNodeFunction = function(AInput: String): String;

implementation

function Func1(AInput: String): String;
begin
   result := AInput;
end;

function Func2(AInput: String): String;
begin
   result := 'Fooled You';
end;

function Func3(AInput: String): String;
begin
   result := UpperCase(AInput);
end;

procedure Demonstration;
var
  SomeFunc, SomeOtherFunc: TNodeFunction;
begin

     SomeOtherFunc = Func3;

     SomeFunc := Func1;
     SomeFunc('Hello'); // returns 'Hello'
     SomeFunc := Func2;
     SomeFunc('Hello'); // returns 'Fooled You'

     SomeOtherFunc('lower case'); // returns 'LOWER CASE'

end;
Mit dem obigen beispiel funktioniert das wunderbar. Aber was, wenn man Func1 2 oder 3 auch im Unit-Kopf deklariert hat? Wieso funktioniert das dann nicht mehr?
Der Fehler lautet
Zitat:
[dcc32 Fehler] uTest.pas(257): E2009 Inkompatible Typen: 'Reguläre Prozedur und Methodenzeiger'

Geändert von a.def (17. Jan 2017 um 12:45 Uhr)
  Mit Zitat antworten Zitat