Zitat:
Der Anwender soll erst garnicht in einen anderen Ordner gehen dürfen, das ist das Problem - nicht die Fehlermeldung danach...
Vielleicht seh ich die Anforderung auch etwas anders.
Zitat:
Der benutzer darf keine Datei in einem anderem Verzeichnis öffnen/speicherm.
Das beinhaltet für micht nicht, daß er nicht mal kurz dort nachsehn darf.
Spätestens nach der erster Fehlermeldung wird er freiwillig nicht mehr das Verzeichnis wechseln.
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
Dir: string;
begin
OpenDialog1.Options := [ofHideReadOnly,ofNoChangeDir,ofPathMustExist,ofFileMustExist,ofNoNetworkButton,ofNoDereferenceLinks,ofEnableSizing];
OpenDialog1.OptionsEx := [ofExNoPlacesBar];
Dir := ExtractFileDir(Application.ExeName);
OpenDialog1.FileName := '';
OpenDialog1.InitialDir := Dir;
while OpenDialog1.Execute do begin
if AnsiSameText(ExtractFileDir(OpenDialog1.FileName), Dir) then begin
// hier die Datei auslesen oder sich merken, das es nach diesem Code gemacht werden soll
Break;
end else begin
if MessageDlg('Die Datei muß im vorgegebenen Verzeichnis liegen!', mtError, [mbRetry, mbCancel], 0) <> mrRetry then
Break;
OpenDialog1.FileName := Dir + PathDelim + ExtractFileName(OpenDialog1.FileName);
end;
end;
end;