[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
{With my last project if a disk is not in say one of the Floppy drives
or my CDRom drive it will crash so i used this function that borland
suggest
}
function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
ok it stops the program from crashing but it shows
I/O 32 error message the question is how do i show them another message
telling the user that thay need to pop in a disk.
And pop the Drive Combo box back to the Hard Drive.
<<<<<<<<<<<<<<<<<<
I'm using the following snippet in cmbDrive.OnChange event. Be sure NOT
to connect lstDir through DirList property of cmbDrive. It's a bit like a
batch file, but it works for me OK in Delphi 2 :)
procedure TfrmMain.cmbDriveChange(Sender: TObject);
var
OldDrive: char;
label
Retry;
function SetDrive(const NewDrive: char): boolean;
begin
try
lstDir.Drive := NewDrive;
Result := true;
except
Result := false;
end;
end;
begin
Retry:
OldDrive := lstDir.Drive;
if not SetDrive(cmbDrive.Drive) then begin
beep;
if MessageBox(Handle, PChar(UpperCase(cmbDrive.Drive) + ':\ is not accessible.'#13#13'Drive not ready.'),
'Error', mb_RetryCancel or mb_IconStop or mb_DefButton1) =
IDRETRY then
goto Retry
else
begin
lstDir.Drive := OldDrive;
cmbDrive.Drive := lstDir.Drive;
end;
end;
end;
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]