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 Öffnen-Fenster (https://www.delphipraxis.net/75495-oeffnen-fenster.html)

Cöster 20. Aug 2006 11:56


Ö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.

EDatabaseError 20. Aug 2006 11:58

Re: Öffnen-Fenster
 
Schau dir ml den Opendialog / OpenImageDialog an ;-)

Mfg

BenjaminH 20. Aug 2006 12:00

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;

Cöster 20. Aug 2006 12:27

Re: Öffnen-Fenster
 
Erstmal danke für die schnellen Antworten.

Zitat:

Zitat von BenjaminH
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;

Hab ich nicht ganz verstanden. Wofür Memo1?

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?

EDatabaseError 20. Aug 2006 12:33

Re: Öffnen-Fenster
 
Delphi-Quellcode:
procedure bildoeffnen;
begin
 if OpenDialog1.Execute then
  Image1.LoadFromFile(OpenDialog1.FileName);
end;
Mfg

Daniel B 20. Aug 2006 12:34

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.

fkerber 20. Aug 2006 12:37

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

Cöster 20. Aug 2006 12:52

Re: Öffnen-Fenster
 
Zitat:

Zitat von EDatabaseError
Delphi-Quellcode:
procedure bildoeffnen;
begin
 if OpenDialog1.Execute then
  Image1.LoadFromFile(OpenDialog1.FileName);
end;
Mfg

Das kommt dann wahrscheinlich ins OnClose des OpenDialogs.

Und wie öffne ich den Dialog? Da muss es doch was geben wie OpenDialog1.Show oder so

@fkerber: hab ich gemacht

Gausi 20. Aug 2006 12:55

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 ;-)

Cöster 20. Aug 2006 13:12

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:
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;
Was hab ich noch falsch gemacht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 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