open,save dialoge

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

open,save dialoge

Beitrag von hendy »

Wie benutze ich die open und save dialoge?
Dankt monta !!

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: open,save dialoge

Beitrag von monta »

ganz simples Beispiel:

Code: Alles auswählen

if OpenDialog.Execute then
  ShowMessage(OpenDialog.Filename);


Mit anderen Worten, Execute zum anzeigen und in Filename steht dann die gewählte Datei.
Johannes


hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: open,save dialoge

Beitrag von hendy »

danke euch beiden
Ich hab das immer mit Create() versucht, wie bei den forms
Dankt monta !!

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: open,save dialoge

Beitrag von Socke »

hendy hat geschrieben:danke euch beiden
Ich hab das immer mit Create() versucht, wie bei den forms

also Formulare zeigt man mit form.Show oder form.ShowModal an.... Create() erstellt eine neue Instanz der Klasse (also ein neues Formular, ein neues Panel etc.)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: open,save dialoge

Beitrag von hendy »

ja, ich hab im programm eine zweite Form so erstellen lassen ;)
Ich dachte, die dialoge müssten erst erstellt werden
Dankt monta !!

Benutzeravatar
Garfield
Beiträge: 172
Registriert: Do 5. Jun 2008, 22:07
OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
CPU-Target: 64Bit
Wohnort: Aken

Re: open,save dialoge

Beitrag von Garfield »

hendy hat geschrieben:Ich dachte, die dialoge müssten erst erstellt werden

Das ist richtig. Wenn Du die Komponente auf Dein Formular legst, wird sie mit dem Formular erstellt und Du musst es nicht selbst tun. Du kannst den Dialog aber auch zur Laufzeit erstellen, dann musst Du ihn selbst mit Create erstellen und mit Free freigeben.

[pascal]
function OpenFile(var fn: String; const filter: String): boolean;
var
OpenDlg : TOpenDialog;
begin
Result := False;
try
OpenDlg := TOpenDialog.Create(Self);
OpenDlg.Title := 'Datei öffen';
OpenDlg.Filter := Filter;
OpenDlg.Options := [...];
Result := OpenDlg.Execute;
if Result
then fn := OpenDlg.FileName;
finally
OpenDlg.Free;
end;
end;
[/pascal]
Bei älteren Delphiversionen konnte man damit die Größe der EXE verringern. Wie es bei Lazarus ist, habe ich noch nicht ausprobiert.
Gruß Garfield

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: open,save dialoge

Beitrag von Socke »

Garfield hat geschrieben:Bei älteren Delphiversionen konnte man damit die Größe der EXE verringern. Wie es bei Lazarus ist, habe ich noch nicht ausprobiert.

Ich glaube, dass das schon in Delphi 7 nichts mehr brachte. Da war es effizienter eine Komponente über das Formular zu erstellen als manuell im Quelltext (mitder LCL könnte das ähnlich sein).

MfG Socke
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
Garfield
Beiträge: 172
Registriert: Do 5. Jun 2008, 22:07
OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
CPU-Target: 64Bit
Wohnort: Aken

Re: open,save dialoge

Beitrag von Garfield »

Bei Delphi 7 hat es noch etwas gebracht. Hatte es mit Delphi 3, 7, 2005 und Turbo Explorer ausprobiert. Vielleicht müsste man dann über GetOpenFileName und GetSaveFileName gehen.
Gruß Garfield

hendy
Beiträge: 80
Registriert: Sa 11. Apr 2009, 17:01
OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
CPU-Target: 32Bit

Re: open,save dialoge

Beitrag von hendy »

wie funktionieren eigentlich die Filter?
Wie richtet man die ein?
Bei mir gibt er immer einen Fehler aus
Dankt monta !!

Benutzeravatar
Garfield
Beiträge: 172
Registriert: Do 5. Jun 2008, 22:07
OS, Lazarus, FPC: Ubuntu 22.04 LTS (Laz 3.0 FPC3.2.2)
CPU-Target: 64Bit
Wohnort: Aken

Re: open,save dialoge

Beitrag von Garfield »

Am besten erklärt man das wohl an einem Beispiel:
[pascal]
Filter := 'Text-Dateien (txt)|*.text|WordPerfect-Dateien (wpd)|*.wpd|Alle Dateien|*.*';
[/pascal]
Abwechselnd der Filtername (der anzuzeigende Text) und der dazugehörige Filter (die Maske) getrennt durch '|'. In der IDE kann bei der Eigenschaft Filter der Filtereditor verwendet werden.
Gruß Garfield

Antworten