Einzelnen Beitrag anzeigen

Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
496 Beiträge
 
Delphi 12 Athens
 
#6

AW: Konstantes Array of Record deklarieren

  Alt Gestern, 23:10
Ich dachte, das war eine der Neuerungen in einer der letzten Delphi-Versionen, dass man bei Array-Konstanten keine Länge mehr angeben muss???
Derzeit deklarierst du einen dynamischen Array-Typ, allerdings ein statisches Array. Deklariere TKameraTypRec mal als statischen Array-Typ. Dann klappt das auch:
Delphi-Quellcode:
//TKameraTypArr = array of TKameraTypRec;
TKameraTypArr = array [0..0] of TKameraTypRec;
Selbst falls du es kompiliert bekommen hättest, hätte der Compiler ja spätestens bei den runden Klammern ((...) ) gemeckert, weil diese nur für statische Array-Konstanten zulässig sind. Du hättest eckige Klammern ([...] ) verwenden müssen. Dass das mit dynamischen Array-Konstanten so nicht klappt hat leider mit dem Fakt zu tun, dass diese intern ganz anders gespeichert werden als statische Array-Konstanten. Es sind eigentlich nur Konstante Zeiger auf eine anonyme dynamische Array-Variable. Du kannst die Beschränkung mit Inline-Variablen umgehen, dann sollte es funktionieren, aber würde den Ramen sprengen.

Typisierte Konstanten sind IMMER "schreibgeschützte" Variaben.
Nicht "IMMER", aber man kann sagen "immer". Großgeschrieben deshalb nicht, weil das mit dem "schreibgeschützt" halt so pauschal auch nicht stimmt. Deshalb kannst du mit dynamischen Array-Konstanten auch so viel lustigen Schindluder wie den hier treiben:
Delphi-Quellcode:
const
  A: TArray<Char> = ['H', 'E', 'L', 'L', 'O'];
begin
  Writeln(A[0] + A[1] + A[2] + A[3] + A[4]); // >>HELLO
  A[0] := 'W';
  A[1] := 'O';
  A[2] := 'R';
  A[3] := 'L';
  A[4] := 'D';
  Writeln(A[0] + A[1] + A[2] + A[3] + A[4]); // >>WORLD
end.
Hmm, Name wird fett dargestellt, ist das evtl. ein reserviertes Wort?
Nein, ist es nicht. Du kannst es ja auch gern anstatt mit Name mit dem Feld Breite versuchen und wirst merken, dass es genauso wenig funktioniert.

und selbst das Highlighting in der IDE ist nicht immer korrekt.
Mein Favorit in Delphi ist bis heute: property add , aus irgendeinem mir nicht erklärlichen Grund wird dort (und zwar nur dort) der Begriff add hervorgehoben...
Dennis
  Mit Zitat antworten Zitat