![]() |
Open Dialog
hallo,
ich habe in meinem programm den standarddialog "topendialog" von delphi verwendet. nun habe ich das problem, dass ich wenn ich auf den button "abbrechen" bzw. auf button "öffnen" klicke, da aber keine datei ausgewählt habe, eine fehlermeldung bekomme.
Delphi-Quellcode:
Ich weiss jetzt nicht, wie ich bei finally überprüfen kann, welchen
try
if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen } begin AssignFile(Filename, OpenDialog1.FileName); { Datei ausgewählt } Reset(Filename); end; while not eof(Filename) do begin Readln(Filename,s); end; finally CloseFile(Filename); end; button ich gedrückt habe und ob ich eine datei ausgewählt habe. kann mir da jemand helfen? im voraus schon mal danke. gruß eassy |
hi Eassy,
mach doch einfach
Delphi-Quellcode:
Roderich
if not OpenDialog1.Execute then
exit; |
Moin Eassy,
schreib' doch einfach:
Delphi-Quellcode:
Dann wird die Routine einfach verlassen, wenn keine Datei ausgewählt wurde.
if not OpenDialog1.Execute then exit;
[EDIT] @Roderich: :mrgreen: [/EDIT] |
was passiert wenn er es in ein Try Except Block gesetzt hätte ?
|
Moin Darty,
dann wäre der Fehler wohl abgefangen worden. Aber es wäre keine saubere Struktur. Wichtig wäre in jedem Falle noch ein try/finally Block, damit die geöffnete Datei in jedem Falle wieder geschlossen wird. |
Delphi-Quellcode:
Mach's do einfach so:
if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen } begin AssignFile(Filename, OpenDialog1.FileName); { Datei ausgewählt } try Reset(Filename); while not eof(Filename) do begin Readln(Filename,s); end; finally CloseFile(Filename); end; end else begin ShowMessage ('Sie haben keine Datei ausgewählt !'); end; |
danke, für die schnelle hilfe, es funktioniert mit einem zusätzlichen
try...finally block... gruß eassy |
Moin 1adavin,
erst einmal herzlich willkommen in der Delphi-PRAXiS. Mit AssignFile wird nur eine Verbindung zwischen dem Bezeichner (Filename) und dem Pfad der Datei hergestellt, damit Funktionen wie Reset, oder Rewrite "wissen" können, wo die Datei liegt. Deshalb gehört das try hinter das Rewrite, denn erst hiermit wird eine Resource (in diesem Falle ein Filehandle) belegt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 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