Die Funktion OBJECT Get pointer gibt einen Zeiger auf die Variable eines Formularobjekts zurück.
Mit dieser Funktion können Sie verschiedene Objekte nach dem Wert des Parameters Selector definieren. Sie können eine Konstante unter dem Thema Formularobjekte (Zugriff) übergeben:
- Object current oder kein Selector: Übergeben Sie diese Konstante oder lassen den Parameter Selector weg, gibt die Funktion einen Zeiger auf die dem aktuellen Objekt zugewiesene Variable zurück. Das ist das Objekt, dessen Formularmethode ausgeführt wird.
Hinweis: Dies ist exakt identisch mit der bisherigen Funktionsweise von Self. Diese Funktion wird nur zur Wahrung der Kompatibilität beibehalten. - Object with focus: Übergeben Sie diese Konstante, gibt die Funktion einen Zeiger auf die Variable zurück, die dem Objekt mit dem Fokus im Formular zugewiesen ist. Sind die beiden letzten optionalen Parameter übergeben, werden sie ignoriert.
Hinweis: Dies ist identisch mit der Funktionsweise von Focus object. Diese Funktion ist in 4D v12 überholt. - Object subform container: Übergeben Sie diesen Selektor, gibt die Funktion einen Zeiger auf die Variable zurück, die dem Unterformular Container zugewiesen ist. Sind die beiden letzten optionalen Parameter übergeben, werden sie ignoriert. Dieser Selektor ist folglich nur im Kontext eines Formulars verwendbar, das als Unterformular dient, um auf die Variable zuzugreifen, die dem Objekt Unterformular Container zugewiesen ist.
- Object named: Übergeben Sie diesen Selektor, müssen Sie auch den optionalen Parameter ObjektName übergeben. In diesem Fall gibt die Funktion einen Zeiger auf die Variable zurück, die dem in diesem Parameter übergebenen Objekt zugewiesen wurde.
Hinweis: Entspricht ObjektName einem Unterformular und ist die Option "Ausgabe Unterformular" markiert, gibt die Funktion einen Zeiger auf die Tabelle des Unterformulars zurück, wenn eine Quelltabelle angegeben ist; andernfalls wird Nil zurückgegeben.
Mit dem optionalen Parameter UnterformularName können Sie einen Zeiger auf ein Objekt ObjektName wiederfinden, das nicht zum aktuellen Kontext gehört, d.h. im Hauptformular. Diesen Parameter können Sie nur nutzen, wenn der Selektor Object named übergeben wurde.
Wurde der Parameter UnterformularName übergeben, sucht die Funktion OBJECT Get pointer zuerst im aktuellen Formular nach dem Objekt Unterformular, genannt UnterformularName, dann innerhalb dieses Unterformulars nach einem Objekt, genannt ObjektName. Wird dieses Objekt gefunden, gibt es einen Zeiger auf die Variable dieses Objekts zurück.
Wir gehen von einem Formular "SF" aus, das im gleichen Elternformular zweimal als Unterformular verwendet wird. Die beiden Unterformulare lauten "SF1" und "SF2". Das Formular "SF" enthält ein Objekt mit Namen AktuellerWert. Im Formularereignis "On Load" der Formularmethode des Elternformulars wollen wir das Objekt AktuellerWert von SF1 auf "Januar" und das von SF2 auf "Februar" initialisieren:
C_POINTER($Ptr)
$Ptr:=OBJECT Get pointer(Object named;"AktuellerWert";"SF1")
$Ptr->:="Januar"
$Ptr:=OBJECT Get pointer(Object named;"AktuellerWert";"SF2")
$Ptr->:="Februar"