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!