Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Dateien / Laufwerke (https://www.delphipraxis.net/41-library-dateien-laufwerke/)
-   -   Delphi Prüfen, ob ein Datenträger eingelegt ist (https://www.delphipraxis.net/15429-pruefen-ob-ein-datentraeger-eingelegt-ist.html)

Spezi1980 28. Jan 2004 16:02


Prüfen, ob ein Datenträger eingelegt ist
 
Eine einfache, aber häufig benötigte Funktion:

Delphi-Quellcode:
//Prüft, ob ein Datenträger eingelegt ist.
function GetDiskIn(Drive: Char): Boolean;
var
  ErrorMode: word;
  DriveNumber: Integer;
begin
  {Meldung eines kritischen Systemfehlers vehindern}
  ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
  try
    DriveNumber := Ord(Drive) - 64;
    if DiskSize(DriveNumber) = -1 then
      Result := False
    else
      Result := True;
  finally
    {ErrorMode auf den alten Wert setzen}
    SetErrorMode(ErrorMode);
  end;
end;
[edit=Matze]Code formatiert. Mfg, Matze[/edit]

Luckie 28. Jan 2004 16:06

Re: Prüfen, ob ein Datenträger eingelegt ist
 
Ich halte mal mit meiner dagegen:
Delphi-Quellcode:
function DiskInDriveA(Statusanzeige: Boolean): Boolean;
var
  sRec: TSearchRec;
  i: Integer;
  Drive: Char;
begin
  Drive := 'A';
  Result := False;
{$I-}
  i := FindFirst(Drive + ':\*.*', faAnyFile, sRec);
  FindClose(sRec);
{$I+}

  case i of
    0: Result := True;
    2, 18:
      begin
        if Statusanzeige then
          ShowMessage('Diskette im Laufwerk ' + Drive + ' ist leer !');
        Result := True;
      end;
    21, 3: if Statusanzeige then
        ShowMessage('Keine Diskette im Laufwerk ' + Drive)
      else if Statusanzeige then
        ShowMessage('Diskette nicht formatiert ! ' + IntToStr(i));
  end;
end;
Kommt ohne try-execept aus. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz