Home
What's New
Delphi 3.0 Tips
Questions
Development Tools
Links

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;