Speichern wenn man etwas verändert hat
-
- Beiträge: 36
- Registriert: Di 24. Okt 2006, 13:58
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hemsbach
- Kontaktdaten:
Speichern wenn man etwas verändert hat
Hey also ich hab ne frage, die überschrift klingt zwar so also ob ich wissen will wie man sein project speichert, aber das meine ich nicht. und zwar ich will in ein programm machen in dem man was in sein TEdit schreiben kann und das dann speichert.
Also praktisch ein Programm, wo auser einem TEdit nichts ist, und in dieses Edit schreib ich dann was (während das Programm ausgeführt wird, nicht wenn ich beim bearbeiten bin, sondern wenn es schon fertig ist) und es dann speicher, sodass wenn ich dass programm erneut starte, im TEdit dann das steht was ich davor da rein geschrieben habe. Hoffe ihr versteht was ich meine. Kann mir jemand helfen??
Also praktisch ein Programm, wo auser einem TEdit nichts ist, und in dieses Edit schreib ich dann was (während das Programm ausgeführt wird, nicht wenn ich beim bearbeiten bin, sondern wenn es schon fertig ist) und es dann speicher, sodass wenn ich dass programm erneut starte, im TEdit dann das steht was ich davor da rein geschrieben habe. Hoffe ihr versteht was ich meine. Kann mir jemand helfen??
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Hallo Napster!
Soweit ich weiß, gibt es da keine direkte Möglichkeit, das Edit-Feld so, wie es ist, in eine Datei zu speichern. Du musst hier mit den Dateizugriffsbefehlen von freepascal arbeiten.
Das ist ein für ein Anfänger recht komplexes Thema. Es lohnt sich aber, dort einzuarbeiten, da man immer mal wieder in die Situation kommt, Programmeinstellungen u.ä. in Dateien abzuspeichern.
Hier kannst du dich in das Thema einarbeiten:
http://www.dankradfeist.de/content/ph/dateien.htm" onclick="window.open(this.href);return false;
(Übersichtlich, geht aber nicht sonderlich in die Tiefe)
Soweit ich weiß, gibt es da keine direkte Möglichkeit, das Edit-Feld so, wie es ist, in eine Datei zu speichern. Du musst hier mit den Dateizugriffsbefehlen von freepascal arbeiten.
Das ist ein für ein Anfänger recht komplexes Thema. Es lohnt sich aber, dort einzuarbeiten, da man immer mal wieder in die Situation kommt, Programmeinstellungen u.ä. in Dateien abzuspeichern.
Hier kannst du dich in das Thema einarbeiten:
http://www.dankradfeist.de/content/ph/dateien.htm" onclick="window.open(this.href);return false;
(Übersichtlich, geht aber nicht sonderlich in die Tiefe)
Vielleicht hilft diese Seite weiter: http://wiki.lazarus.freepascal.org/TXMLPropStorage/de" onclick="window.open(this.href);return false; . Prinzipiell müßte man auch den Inhalt eines Edit Feldes speichern können.
knight
knight
-
- Beiträge: 374
- Registriert: Mi 13. Sep 2006, 15:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hagen a.T.W.
- Kontaktdaten:
Es funktioniert mit einer Stringliste
Natürlich geht das auch. Mit einer Stringliste. Du brauchst einen TButton, einen TSaveDialog und TEdit Kompo. TEdit ist in diesem Falle in Abfrage umbenannt.
ralli
Code: Alles auswählen
procedure TForm1.Abfrage_SpeichernClick(Sender: TObject);
var Liste : TStringList;
begin
Liste := TStringList.Create;
if Abfrage.Text <> '' then
begin
Liste.add(Abfrage.Text);
// SaveDialog_Abfrage.InitialDir := Pfad;
if SaveDialog_Abfrage.Execute then
begin
Liste.SaveToFile(SaveDialog_Abfrage.FileName);
end;
end;
Liste.Free;
end;
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Ich denke, du solltest dich vielleicht auch etwas mehr mit den Grundlagen beschäftigen, Sachen wie beispielsweise var... sind einfach Standard und sollten meiner Meinung nach schon bekannt sein.
Vielleicht hilft es dir, dich mal beispielsweise damit auseinader zu setzen. Ist zwar für Delphi, sollte allerdings recht einfach ohne Änderungen auf Lazarus übertragbar sein.
Vielleicht hilft es dir, dich mal beispielsweise damit auseinader zu setzen. Ist zwar für Delphi, sollte allerdings recht einfach ohne Änderungen auf Lazarus übertragbar sein.
-
- Beiträge: 36
- Registriert: Di 24. Okt 2006, 13:58
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hemsbach
- Kontaktdaten:
?? Wenn ich mich mit z.B. meiner Frage beschäftige, dann lern ich das ja auch dabei oder nicht?? und wo bekommt man das so gut erklärt wie in einem Forum?? auf diesen Hilfsseiten?? Nein, denn die gehen nur auf prinzipielle Probleme ein oder erklären nur allgemeins über z.B. eine Variable. Ich meine ein Forum ist nicht dazu da dass ich alles erklärt bekomme, aber für gewisse Fragen. Naja wie dem auch sei. dann gibts wohl hier keine Antwort die ich verstehe!!
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: Es funktioniert mit einer Stringliste
^^jetzt gib mal nicht gleich auf, es war ja mehr ein kleiner Apell an etwas mehr Eigeninitiative, wo man die Lösung selber sucht.
Prinzipiell denk ich, Euklids Vorschlag ist, auch aufgrund des lerneffektes eigentlich besser.
Aber TStringlist ist halt einfacher.
Also nochmal rallis Quellcode erklärt:
Also dein TEdit heißt im Beispiel Abfrage
Der Inhalt der Procedure muss beim entsprechenden Button fürs speichern, beim OnClick-Ereignis eingefügt werden.
Ich würde noch Ressourcenschutzblöcke einfügen. Am besten du schaust dir auch mal das hier an:
http://www.dsdt.info/tipps/?id=531 Da stehen eigentlich beide Proceduren, welche du brauchst, um zum einen die Daten zu speichern, aber auc, um sie wieder einzulesen.
Prinzipiell denk ich, Euklids Vorschlag ist, auch aufgrund des lerneffektes eigentlich besser.
Aber TStringlist ist halt einfacher.
Also nochmal rallis Quellcode erklärt:
Also dein TEdit heißt im Beispiel Abfrage
Der Inhalt der Procedure muss beim entsprechenden Button fürs speichern, beim OnClick-Ereignis eingefügt werden.
Code: Alles auswählen
procedure TForm1.Abfrage_SpeichernClick(Sender: TObject);
var Liste : TStringList;
//du legst eine Variable (var) mit dem Namen List vom Typ TStringlist an, TStringlist speichert letztlich Zeichenfolgen als Testdatei, dabei ist jede Zeile ein String.
begin
Liste := TStringList.Create;
//die Stringliste wird so erstellt
if Abfrage.Text <> '' then
//speichert nur, wenn auch Text eingegeben wurde
begin
Liste.add(Abfrage.Text);
//fügt in die Stringliste eine neue Zeile ein, welche den Text des Edits enthält
// SaveDialog_Abfrage.InitialDir := Pfad;
if SaveDialog_Abfrage.Execute then
//ermöglicht das Auswählen, eines Verzeichnisses, in welchem die Stringlist gespeichert wird
begin
Liste.SaveToFile(SaveDialog_Abfrage.FileName);
//speichert die Stringlist, alternativ könntest du die if-Abfrage auch weglassen und direkt angeben: Liste.SaveToFile('dateiname.txt'); angeben, dies hätte zur folge, das die Datei automatisch im Selben Ordner wie das Programm gespeichert würde.
end;
end;
Liste.Free;
//die Lste, welche du anfangs erstellt hast, wird hier wieder freigegeben.
end;
http://www.dsdt.info/tipps/?id=531 Da stehen eigentlich beide Proceduren, welche du brauchst, um zum einen die Daten zu speichern, aber auc, um sie wieder einzulesen.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Ein Forum ist aber dazu da echte Probleme zu diskutieren. Und nicht weil man zu faul ist Google oder ne Hilfe zu benutzen zu Fragen.und wo bekommt man das so gut erklärt wie in einem Forum??
Naja bin ja froh solang hier nicth noch gefragt wird wie man einen Button zu bedienen hat.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/