{
-> Question:
How can I store some TRichEdit components and TEdit Components in a single file?
-> Answer:
Use a filestream and a reader or writer object.
These ease the tasks of writing strings to a binary stream and reading them back.
}{
-> Frage:
Wie kann ich den Inhalt einiger TRichEdit und TEdit Komponenten in einer einzigen
Datei speichern?
-> Antwort:
Verwende einen FileStraem und ein Reader/Writer Objekt.
Damit kann man leicht strings in einen binдren Stream speichern und zurьcklesen.
}// Save routine // Speichern Routine procedure SaveEditcontrols(const FileName: string; const Controls: arrayof TCustomEdit);
var
fs: TFilestream;
writer: TWriter;
i: Integer;
ss: TStringstream;
begin
fs := TFilestream.Create(FileName, fmCreate);
try
writer := TWriter.Create(fs, 4096);
tryfor i := Low(Controls) to High(Controls) doif Controls[i] is TCustomRichedit thenbegin
ss := TStringstream.Create(EmptyStr);
trywith TRichedit(Controls[i]) dobegin
Plaintext := False;
Lines.SaveToStream(ss);
end;
writer.WriteString(ss.Datastring);
finally
ss.Free;
end;
endelse
writer.WriteString(Controls[i].Text);
finally
writer.Free;
end;
finally
fs.Free;
end;
end;
// Load routine // Lade Routine procedure LoadEditcontrols(const FileName: string; const Controls: arrayof TCustomEdit);
var
fs: TFilestream;
reader: Treader;
i: Integer;
ss: TStringstream;
begin
fs := TFilestream.Create(FileName, fmOpenread or fmShareDenyWrite);
try
reader := Treader.Create(fs, 4096);
tryfor i := Low(Controls) to High(Controls) doif Controls[i] is TCustomRichedit thenbegin
ss := TStringstream.Create(reader.ReadString);
trywith TRichedit(Controls[i]) dobegin
Plaintext := False;
Lines.LoadfromStream(ss);
end;
finally
ss.Free;
end;
endelse
Controls[i].Text := reader.ReadString;
finally
reader.Free;
end;
finally
fs.Free;
end;
end;
// Example to store 2 TRichEdits and 3 Edit Controls to one file // Beispiel, um 3 TRichEdits und 3 TEdit Controls in einer Datei zu speichern procedure TForm1.Button1Click(Sender: TObject);
begin
SaveEditControls('C:\temp\temp.dat',
[richedit1, richedit2, edit1, edit2, edit3]);
end;
Статья Сохранить несколько контролов в один файл раздела Компоненты и Классы Компоненты может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.