Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OpenDialog problem beim Klick auf Abbrechen (https://www.delphipraxis.net/131208-opendialog-problem-beim-klick-auf-abbrechen.html)

thomas2009 20. Mär 2009 15:10


OpenDialog problem beim Klick auf Abbrechen
 
Hallo

wenn ich das Dialog-Fenster von OpenDialog schließe ohne ein
Klick auf "Öffnen", wird trotzdem ein Bild geöffnet :mrgreen:
Und wenn ich kein Bild wähle und klicke ich auf Abbrechen dann erscheint Eine Fehlermeldung "Die Datei wurde nicht gefunden "

Also
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    if LowerCase(ExtractFileExt(OpenDialog1.Filename)) ='.bmp' then begin
image1.Picture.Bitmap.Loadfromfile(OpenDialog1.FileName);
end;
end;
Was muss ich dazu hinzufügen, damit der Code das Bild lädt nur wenn man auf öffnen anklickt?

mkinzler 20. Mär 2009 15:13

Re: OpenDialog problem beim Klick auf Abbrechen
 
Ändere mal
Delphi-Quellcode:
if savedialog1.Execute then
in
Delphi-Quellcode:
if opendialog1.Execute then

thomas2009 20. Mär 2009 15:28

Re: OpenDialog problem beim Klick auf Abbrechen
 
Ich habe die erste Zeile vertippt
Aber das liegt natürlich nicht daran

mkinzler 20. Mär 2009 15:30

Re: OpenDialog problem beim Klick auf Abbrechen
 
.Execute() sollte aber nur wahr werden, wenn eine Datei ausgewählt wird und nicht bei Abbruch

thomas2009 20. Mär 2009 16:57

Re: OpenDialog problem beim Klick auf Abbrechen
 
Zitat:

Zitat von mkinzler
.Execute() sollte aber nur wahr werden, wenn eine Datei ausgewählt wird und nicht bei Abbruch

Ja stimmt aber das Problem ist nicht beim erst Aufruf sondern ab 2. Aufruf :wink:

Meflin 20. Mär 2009 16:59

Re: OpenDialog problem beim Klick auf Abbrechen
 
Zitat:

Zitat von thomas2009
Ja stimmt aber das Problem ist nicht beim erst Aufruf sondern ab 2. Aufruf :wink:

Dann wird aber kein Bild geladen, sondenr es bleibt einfach das zuerst geladene in der Anzeige :gruebel:

blink182 20. Mär 2009 17:05

Re: OpenDialog problem beim Klick auf Abbrechen
 
ist ja klar, weil das bild ja nicht gelöscht wird, oder vllt versteh ich dich jetzt auch falsch, von dem was du möchtest

Delphi-Quellcode:
image1.picture:=nil;
  if OpenDialog1.Execute then
    begin
if LowerCase(ExtractFileExt(OpenDialog1.Filename)) ='.bmp' then begin
image1.Picture.Bitmap.Loadfromfile(OpenDialog1.FileName);
end;
end;
aber warum nutzt du nicht den Filter von OpenDialog um auch nur die Auswahl von bmp zu erlauben? (bmp|*.bmp)?

thomas2009 20. Mär 2009 17:11

Re: OpenDialog problem beim Klick auf Abbrechen
 
Zitat:

Zitat von Meflin
Dann wird aber kein Bild geladen, sondern es bleibt einfach das zuerst geladene in der Anzeige :gruebel:

Nein, sondern es erscheint eine Fehlermeldung :
"die Datei bla bla wurde nicht gefunden"

d.h. der Pfad der vorhergewählte Datei bleibt gespeichert
darum sehe ich die Fehlermeldung, wenn ich die alte Datei umbenenne und dann beim OpenDialog-Fenster auf Abbrechen anklicke

Zitat:

Zitat von mkinzler
Delphi-Quellcode:
image1.picture:=nil;

Was soll das heissen ? Warum soll ich das alte Bild löschen

Matze 20. Mär 2009 17:14

Re: OpenDialog problem beim Klick auf Abbrechen
 
Greifst du an anderer Stelle auf den alten Pfad zu oder lädst das Bild an anderer Stelle neu?
Denn dein Code von oben wird nur ausgeführt, wenn auf "OK" geklickt wurde. Also würde ich sagen, dass es nicht an diesem liegen kann.

Grüße, Matze

blink182 20. Mär 2009 17:20

Re: OpenDialog problem beim Klick auf Abbrechen
 
das mit dem nil, da bin ich in der Zeile verrutscht, dachte du wolltest das so, aber okay

btw warum sollte man das Bild umbennen, also ich kann deinen Fehler nicht nachvollziehen, aber okay ;)
vllt kannst du ja noch auf FileExist prüfen

Edit: naja wenn du die Datei umbennenst und dann nochmal laden willst,d.h. den File nicht mehr anklicken, sondern einfach nur öffnen, dann ist es ja klar, dass es zu einem Error kommt, da die Datei nicht mehr existiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.
Seite 1 von 2  1 2      

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