Autor Beitrag
Apollo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Windows 7
Delphi 3 Prof., Delphi 2005
BeitragVerfasst: Di 16.10.07 14:46 
Hallo Delphianer :wave: ,
Als ihr den Titel hier gelesen habt, dachtet ihr bestimmt etwas anderes als
ich meinte. Ich weiß schon wie man Formulare speichern kann (Datei/Alles speichern).
Also mein Problem:
Ich habe ein Formumar auf dem ein paar Buttons und auch ein paar Panels sind.
Auf den Panels stehen Ergebnise von Mathematikaufgaben. Nun möchte ich alles so speichern
wie man es sieht. Und es auch so wieder öffnen. Ich hoffe, ihr wisst was ich meine.

Danke im voraus!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 17.10.07 08:16 
Hallo,

du solltest dir überlegen welche Werte in deinem Formular Variabel sind. Nur die Ergebnisse der Mathe aufgaben? Die Ergebnisse und die Aufgaben? Die Ergebisse, Aufgaben und die Position des Formulars? Oder gar die Ergebisse, Aufgaben, die Position des Formulars und die Position der Panels im Formular?

Es macht definitiv keinen Sinn Dinge zu speichern die sich ohnehin nicht Verändern. Wenn sich die Buttons und Panels nicht ändern, warum sich die Arbeit machen die Zuspeichern?

Daher sollte die erste Frage für dich sein: Was musst du wirklich speichern?

Wenn du die beantwortet hast, dann kannst du den besten Weg suchen dies zu tun.

Gruß
Klabautermann
Apollo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Windows 7
Delphi 3 Prof., Delphi 2005
BeitragVerfasst: Mi 17.10.07 17:11 
Mir geht es viel mehr um die Ergebnisse aus der Matheaufgabe.
Wäre schön, das wenn man die Aufgabe öffnet, alles so aussieht als ob man es gerade
ausgerechnet hat. Muß aber nicht unbedingt so aussehen. Bin für alle Vorschläge um das Problem zu lösen offen - bin noch Anfänger.
TProgger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148

XP
D6, D2007 prof
BeitragVerfasst: Mi 17.10.07 17:16 
Eine Variante wäre, beim Schließen alle relevanten Werte (Zahlen, Positionen von Komponenten) in eine Ini-Datei zu schreiben.
Im OnCreate des Forms dann einlesen und alles nach den eingelesenen Werten positionieren und beschriften.
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Mi 17.10.07 19:57 
So viel dazu: Ein Formular kann man nicht speichern. Du kannst nur Inhalte speichern. Bei manchen Komponenten (z.B. RichEdit) gibt es vordefinierte Methoden zum Speichern (genaugenommen gehört das zu TStrings). Du müsstest dir ein Prinzip überlegen, nachdem die Datei aufgebaut ist. Ich verwende gerne TXT als Kennung, du kannst dir aber auch selber etwas ausdenken (übrigens dürfen da nicht nur 3 Buchstaben enthalten sein).
Wenn du drei Panels mit drei Aufgaben hast:
ausblenden Quelltext
1:
2:
3:
Panel1.Caption
Panel2.Caption
Panel3.Caption

Dann schreibst du:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var filecontents: string; Break: string;
begin
  Break := #10#13;
  filecontents := Panel1.Caption + Break + Panel2.Caption + Break + Panel3.Caption; 
end;

Zum Speichern ist die einfachste Variante, ein Memo auf's Form, unsichtbar und per Text filecontents zuweisen und via SaveToFile(FileName: string) speichern. Das ist allerdings ziemlich unprofessionell. Ich habe lange nicht mehr mit Dateien gearbeitet, aber mein Gedächtnis sagt, erst AssignFile(), dann WriteLn() bzw. ReadLn, dann CloseFile(). Am Besten, du guckst dir das mal in der Delphi-Hilfe (F1) an.
BerTeL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windowx XP
Delphi 7 Enterprise
BeitragVerfasst: Mi 17.10.07 20:58 
Ich würde dir ne inifile empfehlen.
Am besten such mal nach TInifile

gibt tolle tut's dafür ;>

Beim schließen des programms speicherst du alles nötige (Formeln, Position des Fensters, Grööße und so..) und beim starten ladest du diese Daten aus der ini-file
Apollo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Windows 7
Delphi 3 Prof., Delphi 2005
BeitragVerfasst: Mi 17.10.07 21:08 
Vielen Dank
das ihr mir geholfen habt. :D
Ich werd alles mal ausprobieren. :zustimm: