OpenDialog Problem



  • Ich progge einen Chat. Dieser sollte auch Daten übertragen können.

    Im laufe des Protokolls wird folgenden Code aufgerufen;

    Timer5->Enabled=false;
    OpenDialog->Execute();
    dateiname=OpenDialog->FileName;
    Timer5->Enabled=true;
    

    im Timer5 wird dieser Code aufgerufen;

    if(Image1->Picture->Bitmap->Empty==true || status.isblack==true)
       {Image1->Picture->LoadFromFile("ampel_orange.bmp");
        status.isblack=false;
       }
     else
       {Image1->Picture->LoadFromFile("ampel_black.bmp");
        status.isblack=true;
       }
    

    Sobald der Timer wieder enabled wird schreibt er mir das entweder das orange oder das schwarze Bild nicht gefunden wird. Da der Timer immer läuft bekomm ich die Nachricht jedesmal wenn der Timer code durchgearbeitet wird.

    Da der Timer vor dem OpenDialog deaktiviert wird und danach wieder aktiviert wird, ist nur dazu da um dieses Problem zu lösen, zeigt aber keinen Erfolg.

    Wenn ich das ganze für meinen SaveDialog mache passiert genau dasselbe.



  • Wenn der User im OpenDialog in ein anderes Verzeichnis verwechselt dann verschiebt sich damit das Arbeitsverzeichnis bzw. current directory deines Programmes. Aus diesem Grund sollte man statt relativer immer absolute Dateipfade verwenden, die man z.B. über TApplication::ExeName ermitteln kann.

    Alternativ lässt sich auch die API-Funktion SetCurrentDirectory verwenden, das ist aber Herumdoktern an den Symptomen, keine Ursachenbekämpfung.



  • Danke für die schnelle Antwort.

    Jetzt gehts wieder.


Anmelden zum Antworten