er det når der er en diskette eller ikke i drevet?
Synes godt om
Slettet bruger
10. august 2003 - 10:18#2
function DiskInDrive(Drive: Char): Boolean; // Disk can be a floppy, CD-ROM,... var ErrorMode: Word; begin { make it upper case } if Drive in ['a'..'z'] then Dec(Drive, $20); { make sure it's a letter } if not (Drive in ['A'..'Z']) then raise EConvertError.Create('Not a valid drive ID'); { turn off critical errors } ErrorMode := SetErrorMode(SEM_FailCriticalErrors); try { drive 1 = a, 2 = b, 3 = c, etc. } if DiskSize(Ord(Drive) - $40) = -1 then Result := False else Result := True; finally { Restore old error mode } SetErrorMode(ErrorMode); end; end;
procedure TForm1.DriveComboBox1Change(Sender: TObject); begin if DiskInDrive(DriveComboBox1.Drive) then DirectoryListBox1.Drive := DriveComboBox1.Drive else begin DirectoryListBox1.Drive := 'C'; DriveComboBox1.Drive := 'C'; end; end;
Det er uden disk eller defekt disk, men jeg har i mellemtiden fundet ud af at min programstump virker når programmet køres uden for IDE. hejhej's function er nydelig. Han får de 30 for umagen.
Når du kører dine programmer fra Delphi stopper den som default op ved alle exceptions, så du har mulighed for at undersøge det nærmere - også selvom du har fanget den. Derfor får du ikke fejlen hvis du kører programmet fra din exe-fil. Hvis du bliver for træt af det kan du slå enkelte exceptions fra i menuen: Tools -> Debug Options -> Language Exceptions Synes bare lige du skulle vide det... :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.