Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern und Öffnen (https://www.delphipraxis.net/36221-speichern-und-oeffnen.html)

ELWOOD 17. Dez 2004 10:48


Speichern und Öffnen
 
Wie schaffe ich es einen button so zu programmieren, dass mein text den ich eingegeben hab in einem verzeichniss abgespeichert wird. Und wie kann ich diesen dann wieder aufrufen??? Mfg ELWOOD

Matze 17. Dez 2004 11:01

Re: Speichern und Öffnen
 
Mehr Infos wären hilfreich. Wo liegt der Text vor?

Falls es sich um ein Memo handelt (geht genauso mit einem RichEdit), dann kannst du's so machen:

Du benötigst einen Open- und einen SaveDialog (Register: "Dialoge")
Delphi-Quellcode:
//speichern
procedure TForm1.BtSaveClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
    Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;

//öffnen
procedure TForm1.BtOpenClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
Aber deine Probleme beantworten die sicher auch die Suchergebnisse, wenn du die DP-Suche benutzen würdest.


Edit: massig Tippfehler korrigiert.

ELWOOD 17. Dez 2004 11:27

Re: Speichern und Öffnen
 
Was ist mit Dialog für speichern und öffnen gemeint???mfg elwood

TeronG 17. Dez 2004 11:39

Re: Speichern und Öffnen
 
Zitat:

Zitat von ELWOOD
Was ist mit Dialog für speichern und öffnen gemeint???mfg elwood

Das sind nichtvisuelle Komponenten die das Öffnen bzw. Speichern-Fenster von Windows aufrufen und die position + Dateinamen den du da angiebst zurückgeben (.FileName).

Teste sie einfach mal näheres dazu in der OH ^^

Chegga 17. Dez 2004 14:35

Re: Speichern und Öffnen
 
Hi,

ich würde dir aber raten mit dem TMainMenu zu arbeiten.
Dann kannst du von dort mit Öffnen, Speichern, Drucken usw. arbeiten.
Wenn es dir nicht klar ist, wie du es machen musst,
dann melde dich und
anschließend schreibe ich dir wie es geht! :wink:

MfG Marc

Chegga 21. Dez 2004 10:34

Re: Speichern und Öffnen
 
Hi,

lange hat's gedauert, aber die Lösung kommt immerhin! :wink:

Eine Menü mit verschiedenen Funktionen:

Suche in der Komponentenpalette das Symbol für
MainMenu und klicke darauf. Anschließend klickst
du irgendwo (am besten oben) auf dein Formular.
Dort erscheint nun das Symbol für das MainMenu.
Doppelklicke auf das Symbol. (Es erscheint der Menüeditor)
Tippe Datei ein und bestätige anschließend mit Enter.
Mit der selben Technik vervollständigst du nun das Menü noch
mit Öffnen und Speichern.
Wenn du fertig bist, schließe den M.-Editor mit Klick auf
X ganz rechts oben.
In deinem Formular sieht man jetzt schon etwas von deinem Menü!
So, legen wir los mit Öffnen und Speichern!
Suche die Komponenten OpenDialog und SaveDialog im Dialogregister.
(normalerweise zwischen System und Win 3.1)
und bringe sie jeweils auf dein Formular (am besten neben das
MainMenü Symbol).
Zunächst sind jedoch Einschränkungen nötig, damit (z.B.) nur
Textdateien angezeigt werden.
Klicke auf OpenDialog im Formular.
Klicke im O.-Inspektor auf die 3 kleinen Punkte hinter dem Eintrag
Filter. (Jetzt öffnet sich der Filtereditor)
Trage dort auf der linken Seite Textdateien (*.txt) ein
und auf der rechten Seite unter Filter kommt *.txt.
(Das ganze noch mal für Speichern im MainMenü.)

So weit, so gut.
Nun brauchen wir aber noch Methoden für Öffnen und Speichern!
Klicke im Formular auf den Menüeintrag Datei
und dann auf Öffnen. Jetzt bist du im Editorfenster.
Füge folgenden Code hinzu:

Delphi-Quellcode:
procedure TForm1.ffnen1Click(Sender: TObject);
begin
  try
   if OpenDialog1.Execute then
   wasduwillst.LoadFromFile (OpenDialog1.FileName);
   // "wasduwillst" ist in dem Fall eine Variablenvereinbarung
  except
   ShowMessage ('Fehler beim Öffnen der Datei!');
  end;
end;
Kurz: MainMenü/Klick auf Speichern.
Füge folgenden Code hinzu:

Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);
begin
  try
   if SaveDialog1.Execute then
   wwasdduwwillst.SaveToFile (SaveDialog1.FileName);
   // eine weitere Variablenvereinbarung
  except
   ShowMessage ('Fehler beim Speichern der Datei!')
  end;
end;
Doppelklick auf das Formular:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  wasduwillst := TSringList.Create;
  wwasdduwwillst := TStringList.Create;
end;
MfG Marc

Luckie 21. Dez 2004 10:39

Re: Speichern und Öffnen
 
Warum die try-except Blöcke?

Phoenix 21. Dez 2004 10:45

Re: Speichern und Öffnen
 
Um Fehler abzufangen?
Ich mach um dialog-execute aufrufe auch immer nen Try-Except drumrum. Die Dinger können aus den verschiedensten Gründen fehler werfen, die man behandeln sollte.

Chegga 21. Dez 2004 10:48

Re: Speichern und Öffnen
 
Hi @ Luckie:

wenn es aus irgend einem Grund nicht gelingt,
die Datei zu öffnen/speichern, dann soll die Fehlermeldung kommen.

MfG Marc

Luckie 21. Dez 2004 10:50

Re: Speichern und Öffnen
 
Äh, was denn zum Beispiel für welche? man kein beim Öffnen-Dialog einstellen, dass nur existierende Dateien geöffnet werden sollen. ansonsten liefert der Diualog nur einen dateinamen zurück, was soll da für ein Fehler kommen? Meiner meinung nach ist der try-except Block hier überflüssig.

Chegga 21. Dez 2004 11:01

Re: Speichern und Öffnen
 
Hi,

Zitat:

Äh, was denn zum Beispiel für welche?
1. Was ist, wenn keine Datei ausgewählt wurde? ( :wink: )
2. Was ist, wenn eine Datei nicht geöffnet bzw.
gespeichert werden kann?

Dafür hat's dann so genannte Kontrollstrukturen. :mrgreen:
(Ich würde sagen wir beenden hier die Diskusion, sonst
sitzen wir morgen noch am PC. :-D )
"Soll's jeder so machen, wie er's will?!" :wink:

MfG Marc

Luckie 21. Dez 2004 11:08

Re: Speichern und Öffnen
 
zu 1: Das wird doch schon hier abgefangen:
Delphi-Quellcode:
if OpenDialog1.Execute then
Die Eigenschaft Execute ist nur dann wahr, wenn auf OK geklickt wurde. Und auf OK kann man nur klicken, wenn eine Datei ausgewählt wurde.

zu 2: Dann gehöret der try-except Block aber in den if Block des OpenDialoges:
Delphi-Quellcode:
if OpenDialog1.Execute theen
begin
  fs := TFileStreame.Create(OpenDialog1.Filename, ...);
  try
    try
      fs.Write(...);
    except
      on E: EWriteError do ShowMessaage(E.Message);
    end;
  finally
    FreeAndNil(fs);
  end;
end;

Matze 21. Dez 2004 12:21

Re: Speichern und Öffnen
 
Zitat:

Zitat von Chegga
Delphi-Quellcode:
procedure TForm1.ffnen1Click(Sender: TObject);
begin
  try
   if OpenDialog1.Execute then
   wasduwillst.LoadFromFile (OpenDialog1.FileName);
   // "wasduwillst" ist in dem Fall eine Variablenvereinbarung
  except
   ShowMessage ('Fehler beim Öffnen der Datei!');
  end;
end;

Wieso muss das try vor

Delphi-Quellcode:
if OpenDialog1.Execute then
Wenn, dann hätte ich's so gemacht:

Delphi-Quellcode:
if OpenDialog1.Execute then
try
  wasduwillst.LoadFromFile (OpenDialog1.FileName);
  // "wasduwillst" ist in dem Fall eine Variablenvereinbarung
except
  ShowMessage ('Fehler beim Öffnen der Datei!');
end;
Es kann sein, dass es so, wie du's geschrieben hast, auch korrekt ist, nur verstehe ich das nicht.


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