![]() |
Edittext speichern
Moin,
ich programmiere seit kurzem mit Delphi7. Bei einem Programm von mir wird eine Zahl als Edittext ausgegeben. Diese Zahl möchte ich speichern, sodass sie nach dem Schließen, beim nächsten Öffnen des Programms immernoch dort steht. Wie funktioniert das? MfG |
Re: Edittext speichern
Servus Zero,
du kannst die Datei in eine Ini-Datei schreiben. Schau dir ![]() Mit AssignFile kann man auch Texte in Dateien ![]() Alternativ könntest du den Wert in die Registry schreiben, aber das würde ich dir erst empfehlen wenn du Delphi im Griff hast, damit du dir da nix vergurkst. :stupid: |
Re: Edittext speichern
Hallo,
Du kannst zB. eine Datei erzeugen, in der diese Zahl gespeichert wird, diese lädst du dann beim erneuten Start des Programmes.
Delphi-Quellcode:
Wenn du möchtest, dass die zahl, welche im edit1 steht beim schließen des Programmes gespeichert wird, dann führe das ganze im OnDestroy Ereignis deiner Hauptform aus.
var
myfile : textfile; s1 : string; begin //Überprüfen ob datei existiert If Not fileExists('MeineZahl.txt') Then Begin //Wenn nicht mit wert von edit1 füllen AssignFile(myfile,'MeineZahl.txt'); Rewrite(myfile); WriteLn(myfile,edit1.text); end else begin //Wenn Existiert, edit1 mit mit meinezahl.txt füllen.. AssignFile(myfile,'MeineZahl.txt'); reset(myfile); readln(myfile,s1); edit1.Text := s1; end; //Datei schließen. closefile(myfile); Und zum einlesen eben beim OnCreate Ereignis. ~stift |
Re: Edittext speichern
Danke für die Antworten,
ich habs jetzt mal mit der textdatei versucht. Eine Fehlermeldung bekomme ich nicht, die textdatei wird auch erstellt; allerdings ist sie leer und der edittext steht dach dem erneuten öffnen auch nicht mehr im editfenster. ich hab jetzt den kompletten code bei OnClose und bei OnShow der Hauptform. Muss ich da noch irgendwas unterschiedlich machen (einmal readln und einmal writeln oder so)? mfg |
Re: Edittext speichern
Hallo nochmal,
Vielleicht hatte edit1 keinen Wert als die Datei geschrieben wurden ist. Mit dem Script von mir wird die Datei nämlich nur ein einziges mal geschrieben, wenn sie existiert nur noch gelesen.. Einfach die Datei nochmal löschen und edit1 mit nem Wert füllen ;). ~stift |
Re: Edittext speichern
Natürlich musst du den Code von Stift anpassen. Das war nur ein Beispiel.
Du musst am Anfang einlesen:
Delphi-Quellcode:
... Und später einmal schreiben. Ob du das bei Form.destroy oder auf Knopfdruck oder sonstwas machst, kannst du dir aussuchen.
var myfile : textfile;
s1 : string; begin AssignFile(myfile,'MeineZahl.txt'); reset(myfile); readln(myfile,s1); edit1.Text := s1; closefile(myfile); end;
Delphi-Quellcode:
Versuche zu verstehen was jede einzelne Zeile macht, dann ist auch klar was wo und warum eingebaut gehört. Dies hier ist auf edit1 zugeschnitten, wenn dein Edit Feld anders heisst, dann ist das natürlich zu ändern.
var myfile : textfile;
s1 : string; begin AssignFile(myfile,'MeineZahl.txt'); Rewrite(myfile); WriteLn(myfile,edit1.text); closefile(myfile); end; Was auch noch fehlt ist eine Abfrage ob die Datei überhaupt schon existiert -> fileexists |
Re: Edittext speichern
Zitat:
|
Re: Edittext speichern
@ stift und isilive: Perfekt, vielen Dank. :-D
@ Bernhard: Also du meinst ich soll noch das Verzeichnis mit angeben? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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