Einzelnen Beitrag anzeigen

epm5

Registriert seit: 8. Jan 2013
5 Beiträge
 
#1

Records Proceduren Methoden

  Alt 4. Mai 2021, 11:14
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.
  Mit Zitat antworten Zitat