Eigene Fehlermeldungen für Drive Combo Box



  • Hallo Freunde,

    ich benötige nocheinmal Eure Hilfe.
    Ich habe eine DriveComboBox in meinem Programm eingerichtet und möchte nun, dass wenn ein Laufwerk ausgewählt wird wo kein Datenträger enthalten ist z.B. Laufwerk D:(DVD Laufwerk)
    dass nicht der Fehlercode 21 aufgerufen wird, sondern mein eigener Fehlercode.
    Ich habe das auch soweit hinbekommen leider läuf es nicht so wie erwartet, denn das Programm zeigt mir weiterhin den Fehlercode 21 an.

    Hier mein Quelltext dazu. Ich sitze nun schon seit ca 2 Stunden an diesem Problem aber ich finde den Fehler nicht, den ich gemacht habe.

    void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
    {
    char aDrive;
    char Errormode;
    aDrive=DirectoryListBox1->Drive;
    if ((DriveComboBox1->Drive==aDrive)){
     Errormode=SetErrorMode(SEM_NOOPENFILEERRORBOX );
     if (DiskFree(aDrive)==0);
     ShowMessage("Datenträger nicht formatiert, oder kein Datenträger im Laufwerk");
    
      DriveComboBox1->Drive=DirectoryListBox1->Drive;
       }
      else
      DirectoryListBox1->Drive=aDrive;
      SetErrorMode(Errormode);
    

    Ich wäre euch dankbar, wenn ihr mir helfen würdet.

    Gruß
    Dieter

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!
    Und die Code-Tags nicht vergessen.



  • Pack ein TApplicationEvents auf die Form. In dessen OnException kannst du prüfen, ob E einem EInOutError entspricht und ob E->Message die 21 enthält, um dann ggf. deine eigene Fehlerbehandlung abzuspulen.

    Ungetestet.


Anmelden zum Antworten