Hallo,
beim Versuch einer Recordkonstanten eine feste Methode zuzuweisen, erhalte ich die Fehlermeldung: Konstantenausdruck erwartet
Was mache ich da falsch?
Der Versuch eine Prozedur zuzuweisen geht ohne Probleme
program Project1b;
uses
Forms,
MyRec in 'MyRec.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
// #####################
unit MyRec;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
procedure doit;
end;
var
Form1: TForm1;
procedure Test;
implementation
{$R *.dfm}
type
TRec = record
s: string;
p: procedure;
m: procedure of object;
end;
Const
// Rec: TRec = (s: 'u'; p: Test); // wird compiliert
Rec: TRec = (s: 'u'; p: Test; m: Form1.doit); // FEHLER: Konstantenausdruck erwartet !?
procedure Test;
begin
showmessage('Test');
end;
procedure TForm1.doit;
begin
Rec.p;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Rec.p;
showmessage(Rec.s);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
doit;
end;
end.