![]() |
Re: Erklärung von record (Delphihilfe unverständlich :))
Ich denke mal das ist recht egal.
|
Re: Erklärung von record (Delphihilfe unverständlich :))
Guck doch mal endlich in die Delphi-Hilfe. :roll: Hinter Case steht immer das, was später anhand seines Wertes ausgewertet werden muß. Im Case-Abschnitt für einen integer hat deshalb ein boolean-Wert nichts zu suchen und umgekehrt. Und bevor die nächste unvermeidliche Frage kommt : Ja, Strings, reals usw. gehen im Case nicht.
|
Re: Erklärung von record (Delphihilfe unverständlich :))
Delphi-Quellcode:
Das müsste aber eigentlich gehen, wobei es aber irgendwie seltsam aussieht.
case Boolean of
True : { ... } False: { ... } |
Re: Erklärung von record (Delphihilfe unverständlich :))
Zitat:
Zitat:
|
Re: Erklärung von record (Delphihilfe unverständlich :))
Zitat:
|
Re: Erklärung von record (Delphihilfe unverständlich :))
Zitat:
Delphi-Quellcode:
genauer erklärt. Damit hatte ich auch nie Probleme, <Name> ist dann auch eine Eigenschaft des records. Aber Integer ist ja keine Eigenschaft von TRect. Was ist dieser Integer, wo wird ihm etwas zugewiesen, könnte man statt
case <Name>:<Ordinal-Typbezeichner> of
Delphi-Quellcode:
auch
0: { ... }
1: { ... }
Delphi-Quellcode:
schreiben? Auslesen kann man anscheinend auch nicht, ob Integer 0 oder 1 ist, denn:
14: { ... }
15: { ... }
Delphi-Quellcode:
Delphi weiß, dass z.B. R.TopLeft.y = R.Top ist? Woher?
procedure TForm1.FormCreate(Sender: TObject);
var R: TRect; begin R := Rect(50, 50, 20, 20); Caption := IntToStr(R.TopLeft.y); end; |
Re: Erklärung von record (Delphihilfe unverständlich :))
Weil es der gleiche Speicherbereich ist... :roll:
|
Re: Erklärung von record (Delphihilfe unverständlich :))
Zitat:
Hab das andere auch mal ausprobiert: Mit Boolean und anderen Typen geht das auch. |
Re: Erklärung von record (Delphihilfe unverständlich :))
Natürlich geht ds mit allen ordinalen Typen. Genau, wie beim "richtigen" Case.
Steht im Record
Delphi-Quellcode:
kann man vorher tatsächlich feststellen, welcher Wert vorliegt. Steht dort nur
case MeineVariable : Integer of
Delphi-Quellcode:
, dann geht es nicht.
case Integer of
Was dann im Case-Block für Fälle drin stehen, ist im Grunde völlig egal. Man muss für die Varianten nur einen Datentyp nehmen, der genügend Varianten verwalten kann. Nimmt man Boolean, gehen nur zwei Varianten. Beim Beispiel von TRect hätte Borland theoretisch auch ein Boolean statt Integer nehmen können, das es nur zwei Varianten gibt. |
Re: Erklärung von record (Delphihilfe unverständlich :))
hallo!
da ich noch kein "fortgeschrittener" bin, wollte ich mal die frage stellen, ob die records dann so etwas ähnliches wie eine klasse ist? es schaut jedenfalls fast gleich aus danke für die verbesserungen ;-) mr |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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