AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Prozedur einer Variablen zuweisen

Ein Thema von a.def · begonnen am 17. Jan 2017 · letzter Beitrag vom 17. Jan 2017
 
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
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz