...use a Record to store information from various class properties?
Author: Loïs Bégué
{
Es ist manchmal interessant, Informationen die zusammen gehören in Records
abzuspeichern. In einer Klassendeklaration kann der Record dann als
Sammelstelle benutzt werden, was zum einen die Übersichtlichkeit des
Programmes erhöht, zum anderen eine gewisse Logik widderspiegelt.
Der Zugriff auf die einzelnen Felder des Records kann von außerhalb
der Klasse mittels Eigenschaften (Properties) erfolgen, was zu besseren
Code führt...
Letzlich können Records z.B. sehr einfach dann in Dateien abgespeichert
bzw. von dort aus wieder geladen werden. This wird dann in einem einzigen
Vorgang erledigt: das Speichern des Records.
}
{
You sometimes wish to store multiple information in a given class like
in the example: alltogether when it belongs together.
Thus accessing this information from out of the class can be achieved
using property declaration. Its a good way to "clean your code" and
make it as "logic" as possible.
You also may have to store or load information from your class using
file or stream technology. This can be done at once for the recorded
information from within the given class.
}
type
TPersonRecord = Record
FirstName: String;
LastName: String;
BirthDate: TDate;
End;
TForm4 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
fActualUser: TPersonRecord;
...
procedure SaveActualUser(S: TFileStream); // it's an example
procedure LoadActualUser(S: TFileStream);
...
public
property FirstName: string read fActualUser.FirstName
write fActualUser.FirstName;
property LastName : string read fActualUser.LastName
write fActualUser.LastName;
property BirthDate: TDate read fActualUser.BirthDate
write fActualUser.BirthDate;
end;
procedure TForm4.SaveActualUser(S: TFileStream);
begin
// All that stuff at once in your Stream
S.Write(fActualUser, SizeOf(fActualUser))
end;
procedure TForm4.LoadActualUser(S: TFileStream);
begin
// All that stuff at once back in your class
S.Read(fActualUser, SizeOf(fActualUser));
end;
printed from
www.swissdelphicenter.ch
developers knowledge base