![]() |
"Datentyp" record end wer kennt ihn?
Also ich kenne den Datentyp seit jetzt... vermutlich...
Delphi-Quellcode:
Mann kann damit zumindest in dem code den ich mir auf github(
PServerHeader = ^TServerHeader;
TServerHeader= packed record Server:TAdresse; Port:Integer AlternativerServer: Record end; end; ![]() Der Code sieht insgesamt so aus als wäre er Ergebnis eines C zu Pascal Transpilers. Wer von euch kannte "Record End" schon vorher oder hat es fürher mal benutzt? Oder nutzt es heute noch? gibt es eine bessere oder eben schönere Lösung? |
AW: "Datentyp" record end wer kennt ihn?
Zitat:
Delphi-Quellcode:
TVirtualNode = packed record
... private Data: record end; // this is a placeholder, each node gets extra data determined by NodeDataSize public |
AW: "Datentyp" record end wer kennt ihn?
Nun ja... Diese Syntax ist in Standard Pascal schon immer möglich gewesen. Es ist halt ein record und der Inhalt ist leer.
![]() |
AW: "Datentyp" record end wer kennt ihn?
Jupp, das ist ein NULL Byte große Typ.
In C++ wird stattdessen gern ein VOID oder ein array[0] verwendet, was aber im Delphi nicht geht, da dort das Kleinste ein array[0..0] ist, welches 1 statt 0 Items enthält. Beachte: VOID, nicht VOID*, weil das wäre ein "Pointer". |
AW: "Datentyp" record end wer kennt ihn?
Zitat:
Ich nehme an das ganze funtkioniert nicht mit Managed Records oder? Zitat:
Ich meine mir war klar das es irgendwie alt ist, aber habe das vorher nie gesehen . Und ich habe in der Schule noch Pascal im Informatik Untericht gelernt!!! Also ich bin alt. Zitat:
|
AW: "Datentyp" record end wer kennt ihn?
Zitat:
|
AW: "Datentyp" record end wer kennt ihn?
Zitat:
Also dieser "leer record" selbst hat nichts mit Managed zu tun, bzw. auch einen Managed Record kannst du ohne "Fields" deklarieren. Und was den VST betrifft, wenn/da er auch normale Managed Types (String, DynArray, Variant oder Interface) beherschen sollte, wäre da prinzipiell auch ein Managed Record mit abgedeckt.
Delphi-Quellcode:
Aber drin mußt du dann selbst casten, da es innen nur die Referenz gibt, aber leider keine TypeInfo.
prodedure Test(var Irgendwas);
prodedure Test(const Irgendwas); Da muß man dann schon auf Generics übergehn, so ala
Delphi-Quellcode:
.
prodedure Test<T>(Irgendwas: T);
|
AW: "Datentyp" record end wer kennt ihn?
Delphi-Quellcode:
var
Data1: record end; Data2: record i: Integer; end;
Delphi-Quellcode:
Das ist ein Nested-Type, also ein Typ, der inline (nicht explizit) deklariert wird,
type
TRecordA = record i: Integer; end; TRecordB = record x: Integer; y: TRecordA; end; TRecordC = record x: Integer; y: record; i: Integer; end; end; aber teilweise fehlen ihm einige TypeInfos, womit generische Zugriffe darauf schwer bis garnicht möglich sind. |
AW: "Datentyp" record end wer kennt ihn?
Ich nehme an "Record end;" funktioniert nur in Records?
Weil in FMX haben wir ja sehr nützliche
Delphi-Quellcode:
Aber sowas wie
TagObject:TObject;
TagString:String; Tag:NativeInt;
Delphi-Quellcode:
Ginge vermutlich nicht?
TagRecord:Record end;
So ein Typ für irgendeinen gemanagden Record. Edit: !!!heilige Scheiße!!! Ich habe jetzt erst verstanden dass "record end;" kein einfacher Typ ist sondern ein leerer inline deklarierter Record... Sorry , dass ich mich so dumm angestellt habe...danke das ihr am Ball geblieben seid und mir das weiter erklärt habt. |
AW: "Datentyp" record end wer kennt ihn?
Jupp, im Prinzip ist das
Delphi-Quellcode:
sowas
var
TagRecord: record end;
Delphi-Quellcode:
type
VOID = record end; var TagRecord: VOID; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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 by Thomas Breitkreuz