![]() |
Case Abfrage in Recorddeklaration ???
Code:
Wie ist das zu verstehen ? Ich möchte nur wissen, was das Case bei einer Typendeklaration ( record ) zu verloren hat !
TBefehl=record
Case Typ:TBefehlsTyp of BT_STAND:(); BT_MOVE:(X,Y:Word); end; Gegoogelt hab ich auch schon nach "delphi case in record" aber bin nicht fündig geworden ! Danke im vorraus :D MfG |
Re: Case Abfrage in Recorddeklaration ???
|
Re: Case Abfrage in Recorddeklaration ???
![]() |
Re: Case Abfrage in Recorddeklaration ???
ich verstehe es einfach nicht !
Code:
_TRIGGER_TYPE_UNION = packed record
case Integer of 0: (Daily: DAILY); 1: (Weekly: WEEKLY); 2: (MonthlyDate: MONTHLYDATE); 3: (MonthlyDOW: MONTHLYDOW); end; // das hier fehlte end; ... blubb := rec.Daily // Hat hier blubb anschließend den Wert 0 ??? bzw Weekly den Wert 1 usw. ? |
Re: Case Abfrage in Recorddeklaration ???
Hi,
Delphi-Quellcode:
Das ist denke ich mal ein gutes Beispiel.
TColorRec = record
case Integer of 1: (r,g,b: Byte); 2: (ColorArray: Array[0..2] of Byte); 3: (Color: TColor); end; (r,g,b,a), (ColorArray) und (Color) belegen hier den gleichen Speicher. Die Art wie auf diesen Speicher zugegriffen dieser Speicher interpretiert wird unterscheidet sich nur.
Delphi-Quellcode:
Damit kann man sich das verdeutlichen ;)
var
Color: TColorRec; begin Color.r := 255; Color.g := 0; Color.b := 255; Panel1.Color := RGB(Color.r,Color.g,Color.b); Panel2.Color := RGB(Col.ColorArray[0],Col.ColorArray[1],Col.ColorArray[2]); Panel3.Color := Color.Color; end; Edit: Zum 543 mal geändert -.-^^ |
Re: Case Abfrage in Recorddeklaration ???
Moin Michael,
Zitat:
Die Unterscheidung besteht darin, wie der Speicherinhalt zu interpretieren ist. |
Re: Case Abfrage in Recorddeklaration ???
Hi,
Ok du hast Recht. Ist ein bisschen schlecht ausgedrückt. Habe aber das richtige gemeint :mrgreen: *Obigen beitrag editiere* |
Re: Case Abfrage in Recorddeklaration ???
OK, wie man darauf zugreift habe ich schon verstanden ( gibts eh nichts zu verstehen, ist logisch )
aber erkär mir mal das hier
Code:
TColorRec = record
case Integer of 1: ... // was macht das Case Integer of und 1, 2, 3 ... EDIT: Zitat:
Oder meinst du vlt., dass sie die gleiche Größe haben ? Wenn nicht, dann ist das ja ziemlich interessant :D |
Re: Case Abfrage in Recorddeklaration ???
Compilier mal meinen Code und probiers aus.
|
Re: Case Abfrage in Recorddeklaration ???
Code:
das ist mal geil :D und könntest du mir schnell erklären was das case integer of macht ?
ColRec.r := 255;
ColRec.g := 0; ColRec.b := 0; Form1.Color := ColRec.Color; |
Re: Case Abfrage in Recorddeklaration ???
Zitat:
|
Re: Case Abfrage in Recorddeklaration ???
Hi,
Das
Delphi-Quellcode:
Dient einfach nur dem Compiler mitzuteilen welche Variablen sich zusammen einen Speicher teilen.
case Integer of
Ich kanns grad nicht besser erklären. Es hat keinen richtigen Sinn. So ist eben halt die Syntax :mrgreen: |
Re: Case Abfrage in Recorddeklaration ???
Ok, ich glaube ich habe es verstanden ! Danke für die schnellen Antworten Neutral General und DeddH !
MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz