Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variante Records & Konstanten (https://www.delphipraxis.net/157578-variante-records-konstanten.html)

slemke76 17. Jan 2011 11:08

Delphi-Version: 7

Variante Records & Konstanten
 
Hallo zusammen,

ich möchte gerne eine Datenstruktur mittels Records für verschiedene Anwendungsbereiche deklarieren. Da es eine Record-Vererbung nicht gibt, bin ich über variante Records gestolpert.

Im Moment habe ich das so:

Delphi-Quellcode:
type TCounterType = (Mico, Prodata);

type
  TCounterData = record
    { allgemeine Typen }
    status: byte;
    case CounterType: TCounterType of
      Mico: (blubb: integer);
      Prodata: ();
  end;
Funktioniert so auch. Ich würde aber den Typen des Zählers gerne als Konstante definieren (habe ich bessere Erfahrungen mit gemacht) und habe folgendes probiert:

Delphi-Quellcode:
const
  CT_MICO: byte=1;
  CT_PRODATA: byte=2;
type
  TCounterData = record
    { allgemeine Typen }
    status: byte;
    case CounterType: byte of
      CT_MICO: ();
    end;
Das geht aber nicht ("Konstantenausdruck erwartet"). Wenn ich statt CT_MICO einfach "1" schreibe, gehts.

Hat jemand eine Idee ?

Danke,
Sebastian

uligerhardt 17. Jan 2011 11:12

AW: Variante Records & Konstanten
 
Zitat:

Zitat von slemke76 (Beitrag 1075232)
Delphi-Quellcode:
const
  CT_MICO: byte=1;
  CT_PRODATA: byte=2;
type
  TCounterData = record
    { allgemeine Typen }
    status: byte;
    case CounterType: byte of
      CT_MICO: ();
    end;
Das geht aber nicht ("Konstantenausdruck erwartet"). Wenn ich statt CT_MICO einfach "1" schreibe, gehts.

Mach die Typangabe weg:
Delphi-Quellcode:
const
  CT_MICO = 1;
  CT_PRODATA = 2;
Dann sollte es gehen.

slemke76 17. Jan 2011 11:16

AW: Variante Records & Konstanten
 
Hallo,

wow - innerhalb von 4 Minuten Antwort 8-).

Ohne die Typ-Angabe in der Const-Definition gehts, 1000 Dank ! Da wär ich glaube ich mein Leben nicht drauf gekommen. Wollte es besonders gut machen ;-)

Grüße,
Sebastian

uligerhardt 17. Jan 2011 11:22

AW: Variante Records & Konstanten
 
Zitat:

Zitat von slemke76 (Beitrag 1075242)
Da wär ich glaube ich mein Leben nicht drauf gekommen. Wollte es besonders gut machen ;-)

Das Thema ist in Delphi auch etwas "speziell" gelöst. :twisted:
Siehe "Typisierte Konstanten".

himitsu 17. Jan 2011 12:07

AW: Variante Records & Konstanten
 
Um es nochmal kurz zu erklären:
Typisierte Konstanten sind eigentlich schreibgeschützte Variablen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 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