Hallo,
wage mich bei einem neuen Programm jetzt erstmalig an
OOP. Hat soweit zwar schon gut geklappt, aber jetzt stehe ich grade auf dem Schlauch....
Im Programm gibt es ein komplexes Berechnungsformular. Da ich die Daten an verschiedenen Stellen brauche, habe ich die Speicherung in ein zentrales Datenobjekt ausgelagert (separate
Unit), sagen wir mal myData := TCalcData.Create mit (stark vereinfacht)
Delphi-Quellcode:
type TCalcData= class(TObject)
private
F_X: Double;
function getValue: Double;
procedure setValue(dd: Double);
public
property X: Double read getValue write setValue;
end;
Weil ich da recht viele spezielle Eingabefelder mit Text drumrum und bestimmtem Verhalten usw. brauche, habe ich mir auch ein Objekt InputBox, das im Kern ein Editfeld dynamisch generiert, geschrieben, auch ausgelagert in eine andere
Unit. Mit wenig Zeilen kann ich mir jetzt viele Eingabefelder erzeugen, also in etwa
Delphi-Quellcode:
inpX := TInputBlock.Create;
inpX.Value := 10;
inpX.ShowBox(...);
Das Box-Objekt schreibt Eingaben auch brav in sein internes Feld. Soweit so gut.
Jetzt meine (Anfänger)frage: wie kann ich erreichen, dass dieses Eingabe-Objekt inpX gleich in myData.X schreibt, natürlich nicht hart, sondern das inpY dann in myData.Y usw. Ich könnte zwar das ganze Objekt myData übergeben, aber dann weiß ich ja noch nicht die richtige Eigenschaft X. Und ich will natürlich nicht nur einmalig den Double-WErt übergeben, sondern jede weitere Änderung soll im myData.X landen. Kann ich dem inpX irgendwie einen Zeiger auf myData.X mitgeben oder so ähnlich? Wie müsste man das definieren, mit Zeigern mache ich sonst gar nichts...
Wäre für Tipps dankbar...
Gruß, jokebb