Autor Beitrag
Die Brotmafia
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
BeitragVerfasst: Mo 26.12.05 01:21 
Also, ich habe eine Anwendung die folgendes Beinhaltet:

Memos, ListBoxen und ein StringGrid.

Nun hätte ich gerne dass, wenn man die Anwendung beendet, die Inhalte der jeweiligen Komponenten gespeichert werden, sodass sie, wenn man die Anwendung erneut öffnet, wieder vorhanden sind.

Ich hoffe mal ich hab mich verständlich ausgedrückt und ihr beantwortet mir das einigermaßen, bin noch nicht so fit in Delphi (*g*, 2 Wochen oder so halt)

Also, euch allen noch frohe Weihnachten und gute Nacht!!

mfg Die Brotmafia
ims
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 34

Win 98, Suse 9.0
D5
BeitragVerfasst: Mo 26.12.05 01:54 
Hallo :D ,
du musst den Inhalt deiner Komponeten am Ende abspeichern und am Anfang den Inhalt wieder den kompo. zuweisen, jetzt gibt es zwei Möglichkeiten du kann das ganze in einer Datenbank speichern oder du speicherst es in einer Textdatei mit Srings, die du später wieder auseinander nimmst. Ich würde dir die Datenbank empfehlen( :D Tutorial dsdt.info für Einsteiger www.dsdt.info/tutorials/?cat=6) und dann setzt du einfach in deiner Prozedur für das Beenden vor dem Befehl application.terminate deine Befehle, die den Datenbankfeldern ihren Inhalt zuweisen und beim Start machst du das im Form mit onactive(und weist den Kompo. den Inhalt der Felder zu) Grüße IMS :D
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mo 26.12.05 11:50 
@ims
statt OnActive wäre OnCreate besser.
Bei OnActive könnte es user profile iconDie Brotmafia passieren das wenn das Programm mal im Hintergrund gerät und dann wieder aktiviert wird, das dann vorgenommene Inhaltsveränderungen mit den alten gespeicherten Informationen "resetet" werden.
Bei OnCreate wird der Inhalt nur bei Programmstart übergeben.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mo 26.12.05 13:42 
Eine gute Möglichkeit zum speichern von Einstellungen wären XML-Dateien (www.delphi-forum.de/viewtopic.php?t=3013) oder ini-Dateien (www.delphi-forum.de/viewtopic.php?t=182 oder www.delphi-forum.de/viewtopic.php?t=1833).

Wie man ein Stringgrid lädt und speichert weiß ich leider nicht aber Memos und Listboxen sind ganz einfach abzuspeichern...

z. B. :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
uses ....,inifiles;
...
...
...
procedure tform1.button1click(Sender : TObject);
var
 ini : tinifile;
begin
//ini-objekt erstellen
 ini:=tinifile.create('C:\MeineEinstellungen.ini');
//inhalt eines edit-feldes speichern
 ini.writestring('User-Daten','Name',edit1.text);
//speicher freigeben
ini.free;
end;


Die Ini-Datei würde so aussehen:
ausblenden MeineEinstellungen.ini
1:
2:
[User-Daten]
Name=derinhaltdeseditfeldes


Und die Einstellungen beim Programmstart laden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
uses ....,inifiles;
...
...
...
procedure tform1.oncreate(Sender : TObject);
var
 ini : tinifile;
begin
//ini-objekt erstellen
 ini:=tinifile.create('C:\MeineEinstellungen.ini');
//editfeld-inhalt laden
 edit1.text:=ini.readstring('User-Daten','Name','');
//speicher freigeben
ini.free;
end;


Du solltest jedoch die Einstellungen nicht im Programmverzeichnis speichern! Speichere die EInstellungen im Anwendungsdaten-Ordner des jeweiligen Users... siehe: luckie-online.de/Dev...rtikel/HOMEDIR.shtml

Hoffe das ich dir helfen konnte...