![]() |
Öffnen-Fenster
Liste der Anhänge anzeigen (Anzahl: 2)
Hi!
Ich schreib gerade ein kleines Bildbearbeitungs-Programm. Wenn man im MainMenu unter Datei auf Öffnen klickt, soll ein neues Fenster sichtbar werden, auf dem man das Bild auswählen kann, die geladen werden soll (siehe Screenshot "so soll's sein"). Weiß vielleicht jemand von euch, wie man das machen kann? Ich krieg's nämlich nur so weit hin, dass man den vollständigen Pfad in ein Edit-Feld eingeben muss (siehe Screenshot "so ist es") und nicht bequem aus einer ComboBox den Pfad auszuwählen und in dem Feld darunter alle Bilder in diesem Pfad anzuzeigen. |
Re: Öffnen-Fenster
Schau dir ml den Opendialog / OpenImageDialog an ;-)
Mfg |
Re: Öffnen-Fenster
Einfach die Komponente TOpenDialog in das Formular einfügen.
Und so öffnest du den dann:
Delphi-Quellcode:
If OpenDialog1.Execute Then
Memo1.LoadFromFile(OpenDialog1.FileName; |
Re: Öffnen-Fenster
Erstmal danke für die schnellen Antworten.
Zitat:
Was muss ich in die Procedure schreiben, die aufgerufen wird sobald ich unter Datei auf öffnen klicke? Wie stelle ich das geladene Bild in einer Image-Komponente dar? |
Re: Öffnen-Fenster
Delphi-Quellcode:
Mfg
procedure bildoeffnen;
begin if OpenDialog1.Execute then Image1.LoadFromFile(OpenDialog1.FileName); end; |
Re: Öffnen-Fenster
Die Memo1 war nur ein Beispiel, wie man an die Dateinamen der im OpenDialog angeklickten Dateien kommt. Brauchst Du also nicht. Du willst also ein Bild anzeigen.
Nimm ein TImage und setze es auf dein Formular. In den Eigenschaften des OpenDialogs, da gibt es Filter, stelle dort die gewünschte Dateiendung ein, der Formate die im Dialog anzeiget werden sollen. An den Dateinamen kommst du eben mit OpenDialog Filename, daher das Beispiel mit der Memo, diesen Namen weist du nicht einer Memo zu, sondern dem TImage, das ist deine Komponente die das Bild dann anzeigen wird. |
Re: Öffnen-Fenster
Hi!
Eine kleine Bitte: Könntest du die Bilder im ersten Beitrag als Jpgs anhängen? Dann wäre es deutlich komfortabler, sich diese anzuschauen, da sie dann deutlich kleiner wären! Danke. Ciao, Frederic |
Re: Öffnen-Fenster
Zitat:
Und wie öffne ich den Dialog? Da muss es doch was geben wie OpenDialog1.Show oder so @fkerber: hab ich gemacht |
Re: Öffnen-Fenster
Den Dialog öffnest du per OpenDialog1.Execute. Wenn er beendet wird, wird ein Boolean-Wert zurückgeliefert (True: eine Datei wurde ausgewählt, False: der Dialog wurde abgebrochen).
Der Code kommt also ins OnClick des Buttons, auf dem "Bild laden" steht ;-) |
Re: Öffnen-Fenster
Also ich kann den OpenDialog jetzt öffnen, aber wenn ich in diesem Dialog dann auf "Öffnen" oder "Abbrechen" klicke, passiert nichts. Der Dialog bleibt geöffnet. Erst wenn ich ca. 20 mal auf "Öffnen" bzw. "Abbrechen" geklickt hab, schließt der Dialog auch wirklich.
Hier sind die beiden Procedures:
Delphi-Quellcode:
Was hab ich noch falsch gemacht?
procedure TForm1.ffnen1Click(Sender: TObject);
begin OpenPictureDialog1.Execute; end; {...} procedure TForm1.OpenPictureDialog1Close(Sender: TObject); begin If OpenPictureDialog1.Execute then ImMain.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; |
Re: Öffnen-Fenster
Zitat:
Delphi-Quellcode:
procedure TForm1.ffnen1Click(Sender: TObject);
begin If OpenPictureDialog1.Execute then ImMain.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; |
Re: Öffnen-Fenster
das ist ja logisch. Schließlich rufst du im OnClose des Dialoges den Dialog wieder auf. Der OpenDialog und alle anderen Dialog der Sorte werden wie folgt benutzt (sollte bei dir ins Click-Ereignis und gegebenfalls solltest du dir mal die Hilfe zu den Dialogen durchlesen):
Delphi-Quellcode:
//OpenDialog1.Execute öffnet den Dialog und gibt "true" zurück wenn er nicht abgebrochen wurde (durch klick auf Kreuz, Alt + F4, Abbrechen etc.)
if OpenDialog1.Execute then begin //Jetzt ist in OpenDialog1.FileName der Dateiname enthalten welcher im Dialog gewählt wurde //Beispiel: ShowMessage('Folgende Datei wurde ausgewählt: ' + OpenDialog1.FileName); end; |
Re: Öffnen-Fenster
Wie oben schon stand:
Der Code gehört in das OnClick - Event des Buttons. OpenPictureDialog1.Execute ist eine Funktion. Wird die beendet, liefert sie einen bool'schen Rückgabewert, je nachdem, ob "OK" (true) oder "Abbrechen" (false) gedrückt wurde. Das hier
Delphi-Quellcode:
ist also dasselbe wie das:
procedure TForm1.ffnen1Click(Sender: TObject);
begin if OpenPictureDialog1.Execute then //do sth. end;
Delphi-Quellcode:
//Edit: Jetzt habe ich mir soviel Mühe gegeben, jetzt wollte ich das auch abschicken. :stupid:
procedure TForm1.ffnen1Click(Sender: TObject);
var test: Boolean; begin test := OpenPictureDialog1.Execute; if test then //do sth. end; |
Re: Öffnen-Fenster
Aah, jetzt hab ich's kapiert.
Zitat:
Jetzt hab ich also gar kein OnClose-Ereignis, nur noch das OnClick. Danke nochmal an alle! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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