Delphi for .NET FCL Examples Reference
| Delegate | namespace |
| System |
Declaration
[Serializable][ClassInterface(ClassInterfaceType.AutoDual)]
Delegate = class abstract(System.Object, ICloneable, ISerializable);
Description
Represents a delegate, which is a data structure that refers to a static method or to a class instance and an instance method of that class.
Note: The closest equivalent of a delegate in Delphi Win32 is a method pointer.
Example
program System_Delegate; {$APPTYPE CONSOLE} {$AUTOBOX ON} type myMethodDelegate = function(myInt: Integer): string of object; mySampleClass = class public function myStringMethod (myInt: Integer): string; class function mySignMethod (myInt: Integer): string; static; end; SamplesDelegate = class public class procedure Main; end; { SamplesDelegate } class procedure SamplesDelegate.Main; var mySC: mySampleClass; myD1: myMethodDelegate; myD2: myMethodDelegate; begin mySC := mySampleClass.Create; myD1 := mySC.myStringMethod; myD2 := mySC.mySignMethod; Console.WriteLine('{0} is {1}; use the sign "{2}".', 5, myD1(5), myD2(5)); Console.WriteLine('{0} is {1}; use the sign "{2}".', -3, myD1(-3), myD2(-3)); Console.WriteLine('{0} is {1}; use the sign "{2}".', 0, myD1(0), myD2(0)); end; { mySampleClass } class function mySampleClass.mySignMethod (myInt: Integer): string; begin Result := ''; if (myInt > 0) then Result := '+'; if (myInt < 0) then Result := '-'; end; function mySampleClass.myStringMethod (myInt: Integer): string; begin Result := 'zero'; if (myInt > 0) then Result := 'positive'; if (myInt < 0) then Result := 'negative'; end; //test SamplesDelegate begin SamplesDelegate.Main; end. |
Example output
5 is positive; use the sign "+". -3 is negative; use the sign "-". 0 is zero; use the sign "".
Looking for Delphi for .NET demos / source code samples? Look no further, Delphi for .NET FCL Examples Reference is what you are searching for!

