|
Handing invalid drives with a DriveComboBox
{Declare LastDriveIndex : SmallInt; somewhere in TForm1's
private section
}
function TCMForm.ValidateDrive : boolean;
begin
if DiskSize (Ord (DriveCB.Text[1]) - Ord ('A') + 1) = - 1 then begin
if MessageDlg ('Drive "' + DriveCB.Text + '" is not ready!',
mtError, [mbRetry, mbCancel], 0) = mrRetry then
result := ValidateDrive
else begin
DriveCB.Drive := DriveCB.Items[LastDriveIndex][1];
result := false;
end;
end else result := true;
end;
procedure TForm1.DriveComboBox1Click(Sender: TObject);
begin
ValidateDrive;
end;
procedure TForm1.DriveComboBox1DropDown(Sender: TObject);
begin
LastDriveIndex := DriveComboBox1.ItemIndex;
end;
procedure TForm1.DriveComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
LastDriveIndex := DriveComboBox1.ItemIndex;
end;
|