Zum Hauptinhalt springen

WinSearchPath

obj -> WinSearchPath()

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von der DLL-Schnittstelle mit grafischer Erweiterung Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service mit grafischer Erweiterung

Setzen des Suchpfades für Objekte

Details

Werden innerhalb von Prozeduren Referenzen auf Objekte mit dem Objektnamen ($Name) verwendet, wird der Suchpfad benutzt, um das Objekt mit dem Namen im Objektbaum zu finden und den entsprechenden Deskriptor zu ermitteln. Die Suche wird dabei von einem bestimmten Objekt innerhalb des Suchbaums gestartet und durchsucht alle untergeordneten Objekte. Wird das Objekt nicht gefunden, werden auch die anderen Bäume durchsucht. Die Suche wird beendet, sobald das erste Objekt mit dem entsprechenden Namen gefunden wird.

Dieses Startobjekt bestimmt wie lange die Suche dauert, wenn das Objekt gefunden werden kann. Der Suchpfad wird automatisch gesetzt, wenn ein Ereignis ausgelöst oder ein Frame -Objekt geladen wird. Alle Namensreferenzen werden dann innerhalb des Fenster-Objekts aufgelöst.

In einer Applikation mit MDI-Fenstern wird nicht nur das aktive Fenster durchsucht, sondern auch alle anderen MDI-Fenster, wenn das angegebene Objekt nicht im aktive MDI-Fenster gefunden wurde. Dies verlängert die Suche. Die Suche kann über das Flags _WinAppSearchMdiFrame des Applikation -Objekts auf das aktuelle MDI-Fenster beschränkt werden. Der Suchpfad muss dann nicht gesetzt werden.

Mit dem Befehl wird das Startobjekt des Suchpfades definiert. Wurde innerhalb eines Ereignisses ein Objekt mit dem Befehl WinOpen () mehrfach geladen, ist der Suchpfad zunächst auf das zuletzt geladene Fenster gesetzt. Da die Namen der Objekte nicht mehr eindeutig sind, muss, um ein Objekt aus dem zuerst geladenen Fenster anzusprechen, der Suchpfad auf dieses Fenster gesetzt werden.

Durch die Angabe eines Suchpfades wird das Startobjekt (obj) für die Suche festgelegt. Bei der Suche werden ebenfalls die Unterobjekte des Startobjektes durchlaufen. Im Beispiel werden zwei Dialoge geladen, die beide ein Objekt mit dem Namen "Text" besitzen. Die Identifizierung des Objektes mit $Text ist nicht eindeutig. Durch die Angabe eines Suchpfades mit dem entsprechenden Dialog wird das Objekt eindeutig gefunden.

Nach dem die Objekte gefunden wurden, muss der Suchpfad mit der Anweisung WinSearchClear () wieder zurückgesetzt werden.

Beispiel:

WinOpen('Meldung1', _WinOpenDialog);
WinOpen('Meldung2', _WinOpenDialog);
$Meldung1->WinSearchPath();
aText # $Text->wpCaption;
WinSearchClear();
info

Namensreferenzen innerhalb von Prozeduren werden für jeden Aufruf nur einmal aufgelöst. D. h. wurde in dem obigen Beispiel der Deskriptor des Objektes Text bereits zuvor ermittelt, wird unabhängig vom gesetzten Suchpfad, in der Folge der Prozedur immer das gleiche Objekt angesprochen. Soll ein anderes Objekt mit gleichen Namen angesprochen werden, muss der Deskriptor des Objektes mit dem Befehl WinSearch () ermittelt werden.