Einzelnen Beitrag anzeigen

Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Record zum Teil als Konstante und Variable?

  Alt 3. Apr 2020, 10:21

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.
Thomas Mueller
  Mit Zitat antworten Zitat