Einzelnen Beitrag anzeigen

jensen82

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

AW: Größe bei dyn. Arrays automatisch?

  Alt 27. Mai 2013, 18:10
Hey!

Also ist das in Ordnung... ? Aber warum in aller Welt muss ich die Länge des Arrays nicht angeben?
Wäre es generisch, z.B. List oder vector aus C++ wäre ja mit .Add(meinVar) alles fein. Kann mir das jemand erklären?

Hier nochmal ein wenig Code:

Delphi-Quellcode:
function GetAllDisks(sHostName: String; sUserName: String;
  sPassword: String): TDiskInfoList;
const
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator: OLEVariant;
  FWMIService: OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject: OLEVariant;
  oEnum: IEnumvariant;
  iValue: LongWord;
  disk: TDiskInfo;
  diskList: TDiskInfoList;
begin
  try
    CoInitialize(nil);
    try
      FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
      FWMIService := FSWbemLocator.ConnectServer(sHostName, 'root\CIMV2',
        sUserName, sPassword);
      FWbemObjectSet := FWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive',
        'WQL', wbemFlagForwardOnly);
      oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumvariant;
      while oEnum.Next(1, FWbemObject, iValue) = 0 do
      begin
        //if not VarIsNull(FWbemObject.Availability) then
          disk.Availability := FWbemObject.Availability;

        if not VarIsNull(FWbemObject.BytesPerSector) then
          disk.BytesPerSector := FWbemObject.BytesPerSector;

        if not VarIsNull(FWbemObject.Capabilities) then
          disk.Capabilities := FWbemObject.Capabilities;
Letztendlich gibt die Funktion eine List zurück.

Ich danke euch vielmals.
  Mit Zitat antworten Zitat