Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi type deklaration mit var - Zuweisung (https://www.delphipraxis.net/207495-type-deklaration-mit-var-zuweisung.html)

NoGAD 29. Mär 2021 23:53

type deklaration mit var - Zuweisung
 
Hallo,

ich beiße mich gerade wieder an einem kleinen Problem fest und fast die Zähne aus. Sicherlich ist diese Frage schon oft aufgetreten, aber ich weiß nicht, wonach ich suchen muss.


Wenn ich in einer Unit einen Type (2) als Record eines Types (1) deklariere und diesen Type (2) dann einer Variablen zuweise, ist es hier gleich möglich die Variable zu füllen?

Delphi-Quellcode:
unit testunit;

interface

type
  TMeinType1 = record
    A : Integer;
    B : Integer;
  end;

type
  TMeinType2 = record
    C : TArray<TMeinType1>;
  end;

const
  EinBeispiel1 : TMeinType1 = (A:1; B:2);
  EinBeispiel2 : TMeinType1 = (A:10; B:20);
  EinBeispiel3 : TMeinType1 = (A:100; B:200);

var
  MeineVariable : TMeinType2; // Hier würde ich gerne die Konstanten direkt hinterlegen, nicht erst später in einer procedure oder function

implementation

end.
Ist das möglich?

LG Mathias

Uwe Raabe 30. Mär 2021 00:56

AW: type deklaration mit var - Zuweisung
 
Nein, das geht nicht, da der Compiler die Record-Konstanten nicht als echte Konstanten zulässt. Es gibt verschiedene Einträge in QP für eine Erweiterung des Compilers in diesem Punkt.

NoGAD 30. Mär 2021 01:05

AW: type deklaration mit var - Zuweisung
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1486296)
Nein, das geht nicht, da der Compiler die Record-Konstanten nicht als echte Konstanten zulässt. Es gibt verschiedene Einträge in QP für eine Erweiterung des Compilers in diesem Punkt.

Hallo und danke, Uwe.

Eventuell habe ich mich falsch ausgedrückt. Ich möchte nicht die Konstanten in der Variable als Konstante hinterlegen, sondern die Konstanten schon vordefinieren, damit ich später nicht erst das Array erstellen und zuweisen muss.


Als einfaches Beispiel:

Delphi-Quellcode:
const
  test: array[0..3] of string = ('A', 'B', 'C','D');
So in der Art würde ich das gerne mit den Konstanten machen.

LG Mathias

Stevie 30. Mär 2021 02:46

AW: type deklaration mit var - Zuweisung
 
Leider nein - siehe RSP-19816

Andreas13 30. Mär 2021 09:50

AW: type deklaration mit var - Zuweisung
 
Hallo Mathias,
Du könntest Deiner Unit am Ende einen Abschnitt
Delphi-Quellcode:
Initialization
hinzufügen und mittels einer Procedure in diesem Initialization-Abschnitt den Record vorbelegen. Das wäre der Ersatz für die fehlende direkte Möglichkeit.
Gruß, Andreas

NoGAD 30. Mär 2021 10:06

AW: type deklaration mit var - Zuweisung
 
Zitat:

Zitat von Andreas13 (Beitrag 1486312)
Hallo Mathias,
Du könntest Deiner Unit am Ende einen Abschnitt
Delphi-Quellcode:
Initialization
hinzufügen und mittels einer Procedure in diesem Initialization-Abschnitt den Record vorbelegen. Das wäre der Ersatz für die fehlende direkte Möglichkeit.
Gruß, Andreas

Vielen Dank!

Das macht es leichter, es in der Unit zu kapseln :-)

LG Mathias

himitsu 30. Mär 2021 11:17

AW: type deklaration mit var - Zuweisung
 
Initialization, Class Constructor und sogar die Managed Records (class operator Initialize) sind hier möglich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf