ist es möglich, dass man einen Record erstellt und den später zum Teil als Variable und zum Teil als Konstante deklariert?
Delphi-Quellcode:
type
TmyRecord = record
String_1: String;
String_2: String;
Boolean1: Boolean;
Boolean2: Boolean;
Boolean3: Boolean;
end;
Kommt drauf an, was Du meinst:
Delphi-Quellcode:
type
TmyRecord = record
var
String_1: String;
String_2: String;
const
Boolean1 = True;
Boolean2 = False;
Boolean3 = True;
end;
Dies ist zwar im Prinzip das, wonach Du fragst, aber ich glaube es ist nicht das, was Du meinst. Denn ich glaube Du meinst, dass Du den Record einmalig zuweist, so dass der konstante Teil danach nicht mehr geändert werden kann.
Delphi-Quellcode:
var
MyRecord1: TMyRecord;
MyRecord2: TMyRecord;
begin
MyRecord1.String_1 := 'bla';
MyRecord1.String_2 := 'blub';
MyRecord2.String_1 := 'blub';
MyRecord2.String_2 := 'bla';
end;
Die Booleans sind aber immer so wie oben deklariert. Es ist also nicht möglich, sie einmalig für jede Instanz auf einen Wert zu setzen und erst danach als Konstante zu betrachten. MyRecord1.Boolean1 und MyRecord2.Boolean1 haben beide immer den Wert, der in der Typdeklaration zugewiesen wurde: True.
Das ließe sich aber mittels eines Konstruktors und ReadOnly-Properties lösen, genauso wie bei Klassen.