3.48 DM_ParsePath
Mit dieser Funktion kann der Identifikator eines Objekts erfragt werden, wenn mehr als ein Dialog geladen ist und sich das gesuchte Objekt nicht im zuerst geladenen Dialog befindet.
DM_ID DML_default DM_EXPORT DM_ParsePath
(
DM_ID dialogid,
DM_ID rootid,
DM_String path,
DM_UInt idx,
DM_Options options
)
Parameter
-> DM_ID dialogid
Dies ist der Identifikator des Dialogs, in dem nach dem Objekt gesucht werden soll.
-> DM_ID rootid
Dieser Parameters steuert, ab welchem Objekt der IDM die Suche nach dem Objekt beginnt. Dabei gibt es folgende Möglichkeiten:
-
rootid = 0
Der IDM sucht in der gesamten Dialogdefinition nach dem angegebenen Objekt.
Dies ist der Normalfall. Auf diese Art können auch die Identifikatoren von Regeln, Funktionen, Variablen und Ressourcen erfragt werden.
-
rootid != 0
Der IDM sucht ab dem angegebenen Objekt nur auf der nächsttieferen Hierarchiestufe; tiefere Hierarchiestufen werden nicht durchsucht.
Diese Vorgehensweise ist nur dann angebracht, wenn in einem Dialog ein Objektname mehr als einmal auftritt.
-> DM_String path
Dieser Pfad definiert das gesuchte Objekt. Er muss eindeutig ein Objekt beschreiben.
Existiert der Objektname nur einmal innerhalb des Dialogs, so reicht die Angabe des Namens, um die gewünschte Referenz zu erhalten. Ist der Objektname nicht eindeutig, muss das Objekt über einen Pfad von Objektnamen getrennt durch einen Punkt beschrieben werden.
-> DM_UInt idx
In diesem Parameter wird angegeben, das wievielte Vorkommen eines Objekts mit dem angegebenen Namen gesucht werden soll.
Der Zähler beginnt bei 0. Um das erste Vorkommen eines Objekts zu suchen, ist hier 0 anzugeben.
-> DM_Options options
Dieser Parameter wird zur Zeit nicht benutzt.
Rückgabewert
0 |
Das gesuchte Objekt wurde nicht gefunden oder der Name ist nicht eindeutig. Das heißt, es gibt keins oder mehrere Objekte mit dem angegebenen Namen. |
!= 0 |
Identifikator des gesuchten Objekts. |
Wenn "setup" als pathangegeben wird und sowohl dialogid als auch rootid gleich 0 sind, dann wird das Setup-Objekt zurückgegeben.
Beispiel
void DML_default DM_ENTRY OkButtonCallback __1((DM_ID, dialogID)) { DM_ID ID1; DM_ID ID2; /* Abfrage eines Objektes im Dialog global */ ID1 = DM_ParsePath(dialogID, 0, "FirstObject", 0, 0); /* Abfrage über einen Pfad */ ID2 = DM_ParsePath(dialogID, 0, "FirstObject.Child1", 0, 0); }
Siehe auch
Eingebaute Funktion parsepath() im Handbuch „Regelsprache“