Erzeuge dir eine Struktur, die alle Daten aufnehmen kann
Beispiel
Delphi-Quellcode:
TPerson = class
public
property Firstname : string;
property Lastname : string;
property Nickname : string;
property Age : Integer;
end;
In deinem Formular hast du dann eine Methode, um diese Struktur anzuzeigen
Delphi-Quellcode:
TPersonForm = class( TForm )
Name_Label : TLabel;
Age_Label : TLabel;
...
private
FPerson : TPerson; // Da stehen die Daten
procedure DoPublish; // Damit wird angezeigt
...
end;
// Hilfsfunktion
// Age <= 0 => ''
// Age = 1 => '1 Jahr'
// Age > 1 => 'x Jahre'
function AgeToString( Age : Integer ) : string;
var
LYear : string;
begin
if Age <= 0 then
Result := ''
else
begin
if Age = 1 then
LYear := 'Jahr'
else
LYear := 'Jahre';
Result := Format( '%d %s', [Age,LYear] );
end;
end;
// Hilfsfunktion
function NamePresenter( const Firstname, Lastname, Nickname : string ) : string;
var
LFormat : string;
begin
LFormat := '%s %s';
if ( Nickname <> '' ) then
LFormat := LFormat + ' (aka "%s")'
Result := Format( LFormat, [Firstname, Lastname, Nickname] );
end;
procedure TPersonForm.DoPublish;
begin
Name_Label.Caption := NamePresenter( FPerson.Firstname, FPerson.Lastname, FPerson.Nickname] );
Age_Label.Caption := AgeToString( FPerson.Age );
end;
Wenn du die Daten änderst, dann rufst du anschließend nur noch die Methode
DoPublish
auf und die Anzeige wird aktualisiert.
Wenn ich mir dein Beispiel (Bild) ansehe, dann würde ich das wohl eher mit einer Paintbox umsetzen und alles selber zeichnen, denn um das mit den normalen Controls so abzubilden, das ist schon etwas aufwändiger.
Ein Grid hilft da auch nicht wirklich (möglich ja, aber sehr aufwändig um die Vorlage auch genau so zu treffen).