In my OnCreateForm1 I have some lines, which load a file into a RichMemo.
A Var by the name of "Saved_dasRichMemo" shall hold the status, if the RichMemo is saved or not.
means "saved" which I use to speak more clearly below.
This does not work for me: The status says "unsaved", although it is "saved".
At the end of the OnCreate event the status is "saved".
When the form shows up, the variable window shows me an "invalid" for this var
When I click at the open-new-file-Icon the value is "unsaved".
I am talking about line 5 of the third code-block " if not Saved_dasRichMemo... "
I am puzzled by this. I ran a search for this var, but could not find any suspect use or local declaration or so.
Does there happen anything between the onCreateOfForm and the visual showing-up of a RichMemo?
here are some details
some lines of the create event
Saved_dasRichMemo:= true; // Aufruf muss vorher und nachher stehen, weil "Laden" eine Änderung ist
ToolButton_oeffneClick(RichEdit_WICHTIGDatei); // öffnet die Datei wie alle anderen Dateien)
Saved_dasRichMemo:= true; // das geladene IST schon gespeichert
loading routine file into richMemo
// öffnet eine übergebene Datei für RichMemo default in rtf-Format oder startet den open-Dialog
procedure TForm_Notizen.ToolButton_oeffneClick(Datei: string);
begin
if not Saved_dasRichMemo then // wenn eine ungesicherte Datei vorhanden ist, wird specher abgefragt
case Application.MessageBox('Änderungen speichern?',
'Achtung',MB_YESNOCANCEL)
of IDYES : Speichern; // ungespeicherte Änderungen sichern
IDCANCEL : exit;
end;
if datei <> '' then begin // wir ein Dateiname via Code übergeben, wo wird diese Datei geöffnet
RichMemo_wichtig.Lines.LoadFromFile(datei);
RichMemoName:=datei; // die Datei ist der Name und ihr Pfad
IstGespeichert(self); // wenn wir eine Datei neu öffnen, ist die Datei gespeichert
exit; // die Funktion oben setzt die Kopfzeile und aktiviert / deaktiviert die Icons
end;
// wird kein Dateiname übergeben, so öffnet sich der Dialog
OpenDialog_RichMemoNotizen.InitialDir:=Pfad + '\Texte'; // dort werden rtf Dateien primär gesucht
if OpenDialog_RichMemoNotizen.Execute then begin
datei := AnsiUpperCaseFileName(OpenDialog_RichMemoNotizen.Filename);
datei := AnsiStrRScan(PChar(datei),'.');
RichMemo_wichtig.Lines.LoadFromFile(OpenDialog_RichMemoNotizen.Filename);
RichMemo_wichtig.Modified := False;
RichMemoName:= OpenDialog_RichMemoNotizen.Filename; // diese Var hält den Pfad der Datei im Arbeitsspeicher
Caption := RichMemoName;
end;
indirect setting of "not saved", which includes the icons for saving as well
// RichMemo stellt fest, ob die Datei/ der Text bereits gesichert ist.
procedure TForm_Notizen.IstVeraendert(Sender: TObject);
begin
// showMessage('Change wurde ausgelöst. gesichert wird false');
Saved_dasRichMemo:=False;
ToolButton_speichern.Enabled:=true; // zeigt im Interface an, dass gesichert ist
Form_Notizen.Caption:='ungesichert ' + RichMemoName;
end;
end;
Triggered is the thing, by the Change-Event of the RichMemo, see screenshot and calling stack.