Memo Automatisch Speichern bei neuen Eintrag.

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von Foxi1896 »

Hallo,
wie oben schon geschrieben... Also Memo speichern ist kein Problem. Aber wie kommt man es hin, das sich das Memo bei Eingabe automatisch speichert.
Oder nach Zeit wenn es nicht nach jeder Eingabe geht?

Code: Alles auswählen

 
procedure TForm1.Save1Click(Sender: TObject);
begin
SaveDialog1.Title := 'Datei sichern';
SaveDialog1.Filter := 'Memo Text Format|*.rtf';
if SaveDialog1.Execute then
  begin
  Memo1.Lines.SaveToFile(SaveDialog1.FileName);
  end;
end;  
 
Gruß Foxi

g3sh
Beiträge: 21
Registriert: Mi 3. Jul 2013, 10:04

Re: Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von g3sh »

Dafür könntest du das OnChange Ereignis vom Memo benutzen. Allerdings würde ich dann auf den Savedialog verzichten... Also dann mit festen Dateienname.

Grüße

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von Foxi1896 »

Ein fester Name wäre ok.

Wie wende ich das OnChange an?

Code: Alles auswählen

Memo1.OnChange:=Test.txt;    

g3sh
Beiträge: 21
Registriert: Mi 3. Jul 2013, 10:04

Re: Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von g3sh »

Auf das Memo klicken, dann (links) im Objektinspektor Ereignisse suchen und dort OnChange suchen, dann einfach doppelklick in die rechte leere Spalte.
Allderings wird mit dem SaveToFile, das du hier anwendest, die datei ganz neu geschrieben. Es wird also nur immer der momentane Inhalt des Memo gespeichert und nicht angehängt. Das müsste man dann anders machen. Aber OnCHange brauchst auch dafür.

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von Foxi1896 »

ah ok habe gerade auch ein Tutorial Video über OnChange gesehen. Nur wie gebe ich es ein was du auch schon geschrieben hast, das er das Memo komplett speichert.

g3sh
Beiträge: 21
Registriert: Mi 3. Jul 2013, 10:04

Re: Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von g3sh »

Das mit dem OnCHange und SaveToFile ist nur gut wenn es dir egal ist, wenn Daten aus vorherigen Programmbenutzungen wieder gelöscht werden.
Ansonsten wäre mein Lösungsansatz (mit OnKeyPress von Memo) so, ist aber noch nicht ganz ausgereift...

Code: Alles auswählen

const
  Dateiname: String = 'DeineDatei.txt';
 
var
  TextDatei: TextFile;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  AssignFile(TextDatei,Dateiname); //Dateinamen zuweisen
  if not FileExists(Dateiname) then
    ReWrite(TextDatei); //Datei neu erezugen, wenn nicht vorhanden
end;
 
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  CloseFile(TextDatei); //nicht vergessen !!
end;
 
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: char);
begin
  Append(TextDatei); //Datei zum Anhängen von Daten öffnen
  Write(TextDatei,key); 
end;
 
Wenn du während das Programm ausgeführt wird, auf die Datei zugreifen willst, müsste man das mit dem CloseFile anders regeln, wäre aber auch kein Problem.

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: Memo Automatisch Speichern bei neuen Eintrag.

Beitrag von Foxi1896 »

Hab gerade eine ganz simple Lösung. =)

Memo1.Lines.SaveToFile('Temp.txt');

Hab das einfach dort mit eingefügt wo ich meine Daten immer ins Memo übertrage.
Danke für deine Hilfe.

Antworten