unit MijnFormUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Generics.Collections, StdCtrls;
type
TIntegerFunctie = function ( a, b: integer ): integer of object ;
TRekenKlasse = class
class function TelOp(a, b: Int32): Int32;
class function TrekAf(a, b: Int32) : Int32;
end;
TTelopKlasse = class
Public
function Voeruit1 ( a, b: integer) : integer ;
end ;
TTrekafKlasse = class
Public
function Voeruit2 ( a, b: integer) : integer ;
end ;
TMijnForm = class(TForm)
procedure FormCreate(Sender: TObject);
procedure Test;
private
{ Private declarations }
Lijstje: TDictionary<string, TIntegerFunctie>;
TelOp : TTelOpKlasse ;
TrekAf: TTrekAfKlasse ;
public
{ Public declarations }
end;
var
MijnForm: TMijnForm;
implementation
{$R *.dfm}
{ TTelopKlasse }
function TTelopKlasse.Voeruit1(a, b: integer): integer;
begin
result := a + b
end;
{ TTrekafKlasse }
function TTrekafKlasse.Voeruit2(a, b: integer): integer;
begin
result := a - b
end;
procedure TMijnForm.Test;
var
op, af: integer;
begin
op := Lijstje.Items['OP'](5,3);
af := Lijstje['AF'](5,3);
Caption := Format('%d en %d', [op, af]);
op := Lijstje.Items['op'](5,3);
af := Lijstje['af'](5,3);
Caption := Caption + ' en ook: ' + Format('%d en %d', [op, af]);
end;
procedure TMijnForm.FormCreate(Sender: TObject);
begin
TelOp := TTelOpKlasse.Create;
TrekAf:= TTrekAfKlasse.Create ;
Lijstje:= TDictionary<string, TIntegerFunctie>.Create;
Lijstje.Add('OP', Telop.Voeruit1 ) ;
Lijstje.Add('AF', Trekaf.Voeruit2 ) ;
Lijstje.Add('af', TRekenKlasse.TrekAf);
Lijstje.Add('op', TrekenKlasse.TelOp);
Test;
end;
{ TRekenKlasse }
class function TRekenKlasse.TelOp(a, b: Int32): Int32;
begin
Result := a + b;
end;
class function TRekenKlasse.TrekAf(a, b: Int32): Int32;
begin
Result := a - b;
end;
end.
Bookmarks