Einzelnen Beitrag anzeigen

jensen82

Registriert seit: 4. Mai 2013
4 Beiträge
 
#1

Größe bei dyn. Arrays automatisch?

  Alt 27. Mai 2013, 15:52
Delphi-Version: 2010
Hallo!

Ich habe schon einige Jahre Programmiererfahrung in anderen Sprachen und bin vor kurzem zu Delphi "gewechselt". Klar...entweder man kann programmieren oder eben nicht.
Mir ist allerdings etwas aufgefallen:

Ich lese Hardware-Infos via WQL und WMI aus und bekomme via OLE und Wbem-Script Daten zurück (Variant). Damit wird ein Record gefüllt.
Hier werden u.a "array UINT16" zurückgegeben. Im Record habe ich daher data : array of Integer; stehen. Das Tolle ist...es geht, ohne SetLength() zu verwenden.

Meine Frage ist: Warum macht Delphi das autom. und warum wird immer empfohlen via SetLength die Größe anzugeben?

Ist die Variante sicher? Also ohne SetLength ?

Hier mal ein Code-Ausschnitt:

Delphi-Quellcode:
TDiskInfo = record
    Availability: Integer; // Uint16
    BytesPerSector: Integer; // Uint32
    Capabilities: array of Integer; // Array of Uint16

// Hier jetzt die Zuweisung:
if not VarIsNull(FWbemObject.Capabilities) then
        begin
          disk.Capabilities := FWbemObject.Capabilities;
end

// klappt ohne Probleme
Ich würde mich über Konstruktives freuen

Und bitte nicht lachen...der Wechsel zu Delphi ist noch nciht ganz abgeschlossen.

Danke sehr!
  Mit Zitat antworten Zitat