Hi@ll
frage steht oben, hab keine ahnung wieso alle werte auf '' zurück gesetzt werden?! hier der code:
Code:
type
TDrives = record
Device : Byte;
Drive : PChar;
end;
TForm1 = class(TForm)
private
aDrives: Array of TDrives;
DriveBtns: Array of TBitBtn;
procedure List_Drives;
procedure CreateDriveBtns;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
const
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;
procedure TForm1.List_Drives;
begin
// speichert den Drive Index und den Laufwerksbuchstaben (zB 'C:\') im aDrives Array
end;
procedure TForm1.CreateDriveBtns;
var
i:Byte;
begin
List_Drives;
SetLength(DriveBtns, length(aDrives));
for i := low(aDrives) to High(aDrives) do
begin
DriveBtns[i] := TBitBtn.Create(self); // <- Nach diesem Befehl werden die Daten im aDrives Array gelöscht (Nur die Laufwerksbuchstaben und nicht die Indexe)?!?!
DriveBtns[i].Parent := Panel1;
DriveBtns[i].Top := i*30;
DriveBtns[i].Caption := string(aDrives[i].Drive);
end;
end;