Records Proceduren Methoden
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. |
AW: Records Proceduren Methoden
Form1 ist eine Variable :zwinker:
Außerdem ist sie zu diesem Zeitpunkt eh leer, weil keine Form-Instanz drin. (falls es doch funktioniert hätte) TForm1.doit, wenn es eine "class procedure" (für M) oder "class procedure; static" (für P) ist. Und bitte [DELPHI]dein code[/DELPHI] drumrum. |
AW: Records Proceduren Methoden
Hallo Ja, das habe ich auch gemacht. vielen dank für deine antwort.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz