Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Speichern eines Formulars (https://www.delphipraxis.net/113157-speichern-eines-formulars.html)

Sebastian92 3. Mai 2008 17:05


Speichern eines Formulars
 
Hallo,

Ich lerne zurzeit Delphi aus einem Buch und in diesem Buch steht, dass man zum Beispiel den Inhalt einer ListBox mit dem Befehl ListBox1.Items.SaveToFile(...) speichern kann. Allerdings steht in diesem Buch nicht, wie ich ein Formular speichern kann :gruebel: . Ich hatte eine Idee, dass ich schreibe: Form1.SaveToFile(...), allerdings war das eine Schnapsidee. Hat jemand eine Lösung auf mein Problem?

mit freundlichen Grüßen,
Sebastian

mkinzler 3. Mai 2008 17:13

Re: Speichern eines Formulars
 
Schau dir mal TJvAppStorage (aud der JVCL) an.

Jürgen Thomas 3. Mai 2008 17:15

Re: Speichern eines Formulars
 
Hallo,

zunächst musst Du Dir überlegen, was und wie eigentlich gespeichert werden soll:
* Wenn Du das Formular als Bilddatei haben willst, dann suche in der Hilfe nach TForm.GetFormImage in Verbindung mit TBitmap.SaveToFile.
* Wenn Du die Definition des Aufbaus haben willst, steht sie schon in der dfm-Datei.
* Wenn Du den aktuellen Zustand des Formulars haben willst (z.B. Position und Texte aller Controls), gibt es mehrere Möglichkeiten. (Die finde ich in meiner Erinnerung nicht mehr so leicht, aber es gibt sicher andere Helfer, die das sofort sagen können.) Eine davon hat Markus genannt.

Gruß Jürgen

PS. Wieso kommst Du eigentlich auf die Idee, das unter "Multimedia" zu fragen? Jürgen

Sebastian92 3. Mai 2008 17:23

Re: Speichern eines Formulars
 
Hallo,Jürgen

Dass mit dem Multimedia war ein versehen, ich hatte mich im Forum vertan :lol:
Für das Programm brauche ich die letzte Version deiner Ausführungen, abert trotzdem vielen dank

Hansa 3. Mai 2008 20:33

Re: Speichern eines Formulars
 
Speichere so etwas einfach in einer INI-Datei und lese es daraus im OnShow/OnCreate. Speichern im OnHide/OnClose.

NickelM 4. Mai 2008 22:24

Re: Speichern eines Formulars
 
Hoffentlich ist das jetzt nicht so schwer für dich aber mach es so

Wenn du nur die Fomr eigenschaften z.b. Größe habe willst :
Delphi-Quellcode:
var S : TFileStream;
begin
S := TFileStream.Create(C:\meinform.lol); die dateierweiterung ist egal
S.WriteComponent(Form1);
end;
Und beim start bei on Create das gleiche nur anstat WriteComponent ReadComponent;
So hast du dan alle eigenschaften von dem Form.

Hansa 4. Mai 2008 23:59

Re: Speichern eines Formulars
 
Zitat:

Zitat von NickelM
Hoffentlich ist das jetzt nicht so schwer für dich aber mach es so..

Sieht eher so aus, als wenn das für dich zu schwer ist. :lol: In einer Zeile gleich zwei kapitale Fehler (auch für Anfänger). Die fehlenden '' beim Dateinamen wird er wohl (eventuell) schnell finden, aber den fehlenden richtigen Parameter so einfach nicht.

Dann wüsste ich mal noch gerne, worin der Sinn davon liegt, so etwas in einer Binär-Datei abzuspeichern, anstatt in einer INI (=Text). Letztere ist von Hause aus leserlich (sogar mit TYPE), TFilestream aber eben nicht. Völlig unbedeutend ist die Datei-Endung übrigens auch nicht. Nenne sie mal *.PAS und gucke, was dann passiert. :mrgreen:

omata 5. Mai 2008 00:18

Re: Speichern eines Formulars
 
Bitte kein Speicherleck zeigen und vielleicht sprechende Bezeichner wählen ...

Delphi-Quellcode:
var FileStream : TFileStream;
begin
  FileStream := TFileStream.Create('C:\meinform.lol');
  try
    FileStream.WriteComponent(Form1);
  finally
    FileStream.free;
  end;
end;
Gruss
Thorsten

bitsetter 5. Mai 2008 00:43

Re: Speichern eines Formulars
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von NickelM
Hoffentlich ist das jetzt nicht so schwer für dich aber mach es so..

Sieht eher so aus, als wenn das für dich zu schwer ist. :lol: In einer Zeile gleich zwei kapitale Fehler (auch für Anfänger). Die fehlenden '' beim Dateinamen wird er wohl (eventuell) schnell finden, aber den fehlenden richtigen Parameter so einfach nicht.

Dann hätte man bei der Gelegenheit auch gleich noch den 2. "kapitalen Fehler" beseitigen können.
Delphi-Quellcode:
FileStream := TFileStream.Create('C:\meinform.lol', fmCreate);

Hansa 5. Mai 2008 02:19

Re: Speichern eines Formulars
 
Zitat:

Zitat von bitsetter
Dann hätte man bei der Gelegenheit auch gleich noch den 2. "kapitalen Fehler" beseitigen können.

Natürlich hätte "man" das können. Ihr habt das ja jetzt quasi als Kindergärtner gemacht. :mrgreen: In der besagten einen Zeile im Original ist übrigens noch ein Fehler, der den Compiler zum anhalten zwingt. Und ihr zwingt den Fragesteller dazu, dass er wegen unnötiger Komplettlösungen ohne Gegenfrage alles abschreiben kann und danach genauso schlau sein dürfte wie vorher auch. 8) Ok, vielleicht ist dann aber auch die Hausaufgabe erledigt und der Lehrer fragt nicht nach. :stupid:

P.S.: Bittsetter, bitte richtig zitieren !!


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