In .Net gibt es dafür DataBinding.
Dein Wert wird ja sicher nicht einfach so im Nirgendwo rumliegen. Du hast sicherlich eine Klasse, die den Radius als read/write Property hat und eine readonly Property für den Umfang hat, right?
Ich hoffe, das kommt D.Net hoffentlich nahe genugIst von einem anderen Pascal dialekt umgewandelt[/meta].
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| KreisUmfangsDings = public class private procedure get_Umfang: Integer; public property Radius : Integer; property Umfang : Integer read get_Umfang; end;
implementation
procedure KreisUmfangsDings.get_Umfang: Integer; begin result := Integer(2 * (Math.PI * Radius)); end; |
Nehmen wir nun an, du hast eine RadiusTextBox und ein UmfangLabel auf deinem Form, dann kannst du beide einfach an das KreisUnfangsDings binden:
Delphi-Quelltext
1: 2: 3: 4:
| kreisDings := KreisUmfangsDings.Create(); RadiusTextBox.DataBindings.Add('Text', kreisDings, 'Radius'); UmfangLabel.DataBindings.Add('Text', kreisDings, 'Umfang'); |
Das Übernehmen der Werte verhält sich ähnlich wie bei den DB-Aware Controls von früher, Esc setzt den Wert zurück, Verlassen des Controls schreibt den Wert in das KreisDings.
Dadurch siehst du sofort den Umfang im Label. (Die Property Umfang errechnet sich ja aus Radius
)
Ich hoffe mal das war nicht zuuuu abstrakt...
btw: Beim nächsten Mal .Net-Dinge über das C#-Forum schreiben, den Beitrag hier habe ich zum Bleistift nur zufällig gesehen.
Hier gehören IMHO nur Dinge rein, die speziell und ausschließlich auf Delphi.Net beschränkt sind.