Zum Hauptinhalt springen

WinInfo

obj -> WinInfo(int1[, int2, int3]) : int

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

Oberflächen-Objekt-Informationen ermitteln

Details

  • obj: Oberflächenobjekt
  • int1: Optionen (siehe Text)
  • int2: Zähler (optional)
  • int3: Objekttyp (optional)
  • Resultat: int Objektinformation (siehe Text)
  • Siehe: WinSearch () , HdlInfo () , OrderPass , Blog

Mit diesem Befehl können verschiedene Informationen zu dem übergebenen Objekt (obj) oder zu der Umgebung, in der die Applikation gestartet wurde, ermittelt werden. Zudem können relativ zum angegebenen Objekt, andere Objekte ermittelt werden. Die unterschiedlichen Funktionen werden durch die Übergabe entsprechender Konstanten in (int1) aufgerufen.

Die Funktionen können in folgende Bereiche aufgeteilt werden:

Werden die folgenden Konstanten übergeben, ist die Rückgabe des Befehls immer der Deskriptor eines Objekts. In (obj) kann ein beliebiges Oberflächenobjekt übergeben werden.

  • _WinFirst Das Resultat ist das erste untergeordnete Objekt des Objekts (obj).
  • _WinLast Das Resultat ist das letzte untergeordnete Objekt des Objekts (obj).
  • _WinNext Das Resultat ist das nachfolgende Objekt des Objekts (obj).
  • _WinPrev Das Resultat ist das vorhergehende Objekt des Objekts (obj).
  • _WinParent Das Resultat ist das übergeordnete Objekt des Objekts (obj).
  • _WinRoot Das Resultat ist das Wurzel-Objekt des Objekts (obj).
  • _WinFrame Das Resultat ist das übergeordnete Frame -Objekt des Objekts (obj).
info

Die Reihenfolge, in der über die Parameter _WinFirst , _WinPrev , _WinNext und _WinLast zugegriffen wird, entspricht der Erstellungsreihenfolge der einzelnen Objekte. Die Intervall -Objekte innerhalb des GanttGraph -Objekts werden vom Betriebssystem nicht in einer Liste verwaltet. Die Reihenfolge beim Lesen der Intervalle kann somit von der Erstellungsreihenfolge abweichen. Bei den Objekten Notebook , RecList und DataList kann alternativ über die Eigenschaft OrderPass die Anzeigereihenfolge ermittelt werden.

In (int3) kann ein Objekt-Typ angegeben werden. Als Werte stehen die bei _WinType beschriebenen Konstanten zur Verfügung. Der Objekt-Typ wird nur in Kombination mit den Optionen _WinFirst, _WinPrev, _WinNext, _WinLast und _WinParent ausgewertet. Es wird das entsprechende Objekt des angegebenen Typs zurückgegeben.

Beispiel:

// Übergeordnetes Notebook-Objekt ermitteln
tObj->WinInfo(_WinParent, 0, _WinTypeNotebook);

Objekte nach Typ iterieren

Werden Objekte nach Typ iteriert, stellt der übergebene Objekttyp dabei nicht immer den exakten Objekttyp dar, sondern eine Objektgruppe.

Beispiel:

for  tChild # tParent->WinInfo(_WinFirst, 1, _WinTypeEdit);
loop tChild # tChild->WinInfo(_WinNext, 1, _WinTypeEdit)
while (tChild > 0)
...

Die Schleife ermittelt nicht nur Edit-Objekte vom Typ _WinTypeEdit, sondern auch DateEdit , FloatEdit , TextEdit , etc, da diese zur Objektgruppe der Eingabeobjekte gehören.

Die folgende Schleife ermittelt dagegen nur DateEdit -Objekte, da diese keine eigene Objektgruppe bilden.

for  tChild # tParent->WinInfo(_WinFirst, 1, _WinTypeDateEdit);
loop tChild # tChild->WinInfo(_WinNext, 1, _WinTypeDateEdit);
while (tChild > 0)
...

Folgende Objektgruppen existieren:

Sollen nur Objekte des angegebenen Typs ermittelt werden, muss die Konstante _WinTypeExact mit dem Objekttyp verodert werden:

for  tChild # tParent->WinInfo(_WinFirst, 1, _WinTypeEdit | _WinTypeExact);
loop tChild # tChild->WinInfo(_WinNext, 1, _WinTypeEdit | _WinTypeExact);
while (tChild > 0)
...

Die Konstante wird bei den Optionen _WinFirst, _WinLast, _WinNext, _WinPrev und _WinParent ausgewertet und bei allen anderen Optionen ignoriert.

Ermitteln anderer Objekte

Bei diesen Funktionen werden bestimmte Objekte ermittelt. Als Übergabeparameter müssen entweder bestimmte Objekttypen oder 0 übergeben werden. Welche Objekte übergeben werden können, ist bei den Konstanten erläutert.

Informationen über das Objekt

In dieser Gruppe von Konstanten werden Informationen über das in (obj) angegebene Objekt zurückgegeben. Bei einigen Konstanten können nur bestimmte Objekttypen übergeben werden. Dies ist bei den Konstanten erläutert.

  • _WinCount Das Resultat ist die Anzahl der untergeordneten Objekte des Objekts (obj).
  • _WinClientHeight Es wird die Höhe des Clientbereichs (inklusive Tool - und Windowbars ) zurückgegeben. Es können nur Objekte vom Typ Frame , AppFrame oder MdiFrame übergeben werden.
  • _WinClientWidth Es wird die Breite des Clientbereichs (inklusive Tool - und Windowbars ) zurückgegeben. Es können nur Objekte vom Typ Frame , AppFrame oder MdiFrame übergeben werden.
  • _WinInteriorHeight Es wird die Höhe des Anzeigebereiches ohne Menü, Tool - und Windowbars zurückgegeben. Bei AppFrame -Objekten entspricht das der Höhe des Bereiches, in dem MdiFrame -Objekte dargestellt werden können. Es können nur Objekte vom Typ Frame bzw. AppFrame übergeben werden.
  • _WinInteriorWidth Es wird die Höhe des Anzeigebereiches ohne Menü, Tool - und Windowbars zurückgegeben. Bei AppFrame -Objekten entspricht das der Höhe des Bereiches, in dem MdiFrame -Objekte dargestellt werden können. Es können nur Objekte vom Typ Frame bzw. AppFrame übergeben werden.
  • _WinType Das Resultat ist der Typ des Objekts (obj).
  • _WinFocusKey Das Resultat ist die Taste, mit der das Objekt verlassen wurde.
  • _WinIndex Das Resultat ist die Position des Objekts (obj) innerhalb des übergeordneten Objekts.
  • _WinItem Das Resultat ist die Position der Datenzelle des Spalten -Objekts (obj) eines DataList -Objekts.
  • _WinState Das Resultat ist der Status des Frame / AppFrame / MDIFrame - oder des GroupTile -Objekts (obj).
  • _WinDynamic Wird ein Objekt (obj) angegeben, gibt der Befehl zurück, ob es dynamisch erstellt wurde (1) oder nicht (0). Ein Objekttyp (int3) darf in diesem Fall nicht angegeben werden. Wird als Objekt 0 und in (int3) ein Objekttyp angegeben, gibt der Befehl zurück, ob der Objekttyp mit WinCreate () erzeugt werden kann.
  • _WinUnicode Wird als Resultat 1 zurückgegeben, unterstützt das Objekt (obj) Unicode-Eigenschaften, bei 0 nicht. Die betreffenden Eigenschaften sind auf der Seite Unicode-Unterstützung ersichtlich.

Informationen über die Umgebung

Mit diesen Konstanten werden Parameter der Umgebung abgefragt. Außer bei der Ermittlung des Fehlerwertes muss kein Objekt übergeben werden. Anstelle des Deskriptors wird der Wert 0 angegeben.

WinInfo(0, int1[, int2, int3])
  • _WinScreenWidth Das Resultat ist die horizontale Bildschirmauflösung.
  • _WinScreenHeight Das Resultat ist die vertikale Bildschirmauflösung.
  • _WinScreenDpiX Das Resultat ist die horizontale Bildschirmauflösung in DPI.
  • _WinScreenDpiY Das Resultat ist die vertikale Bildschirmauflösung in DPI.
  • _WinScreenBBP Das Resultat ist die aktuelle Bildschirmfarbtiefe.
  • _WinThemeActive Das Resultat ist die Aktivität der betriebssystemabhängigen Darstellung.
  • _WinHighContrast Das Resultat ist 1, wenn Windows im Modus "Hoher Kontrast" läuft, sonst 0.
  • _WinErrorCode Das Resultat ist der Windows-Fehlerwert. Der Fehlerwert muss nur nach der Installation zur Darstellung von Office-Dateien (InstallCtxOffice) abgefragt werden.
  • _WinNodeMouseSelect Das Resultat ist die Maustaste, mit der zuletzt ein TreeNode in einem TreeView -Objekt selektiert wurde.

Beispiel 1:

// Alle Objekte eines Fensters ermitteln

@A+
@C+

sub AllObj
(
aStartObj : handle;
)

local
{
tObj : handle;
}

{
if (aStartObj > 0)
{
for tObj # aStartObj->WinInfo(_WinFirst);
loop tObj # tObj->WinInfo(_WinNext);
while (tObj > 0)
{
tObj->AllObj();
... // Verarbeitung des Objekts
}
}
}

main()

local
{
tHdl : handle;
}

{
tHdl # WinOpen('Manager', _WinOpenDialog);
tHdl->AllObj();
tHdl->WinClose();
}

Beispiel 2:

// Alle Einträge eines Menüs ermitteln

// Menü des Fensters ermitteln
tMenu # tFrame->WinInfo(_WinMenu);

// Ersten Eintrag ermitteln
tItem # tMenu->WinInfo(_WinFirst);

// Solange Einträge vorhanden
while (tItem > 0)
{
// Ersten Untereintrag ermitteln
tSubItem # tItem->WinInfo(_WinFirst);

// Solange Untereinträg vorhanden
while (tSubItem > 0)
{

... // Verarbeitung der Untereinträge

// Nächsten Untereintrag ermitteln
tSubItem # tSubItem->WinInfo(_WinNext);
}

// Nächsten Eintrag ermitteln
tItem # tItem->WinInfo(_WinNext);
}

Beispiel 3:

// Bestimmte Objekte eines Gantt-Graphs ermitteln

sub Info
(
aGanttGraph : handle; // Übergebener Gantt-Graph
aObjType : int; // Übergebener Objekt-Typ
)

local
{
tObj : handle; // Interval-Deskriptor
tTemp : int; // Zwischenspeicher
}

{
// Objekt-Typ kein Gantt-Graph-Unterobjekt
if ((aObjType != _WinTypeInterval) and (aObjType != _WinTypeIvlBox) and (aObjType != _WinTypeIvlLine))
// Funktion abbrechen
return;

// Erstes Unterobjekt vom Typ aObjType ermitteln
tObj # aGanttGraph->WinInfo(_WinFirst, 1, aObjType);
// Solange Unterobjekte vom Typ aObjType vorhanden
while (tObj != 0)
{
// Nächstes Unterobjekt vom Typ aObjType ermitteln
tTemp # tObj->WinInfo(_WinNext, 1, aObjType);

... // Verarbeitung des Objekts

tObj # tTemp;
}
}

Der Parameter (int2) wird nur in Kombination mit den Optionen _WinPrev, _WinNext und _WinParent ausgewertet. Mit dem Zähler kann eine Schrittweite übergeben werden.

Beispiel:

// Übernächstes Objekt ermitteln
tObj->WinInfo(_WinNext, 2);

// Großvater-Objekt ermitteln
tObj->WinInfo(_WinParent, 2);

Bei der Angabe von negative Werten in (int2) liefert der Befehl den Wert 0 zurück.

Mögliche Laufzeitfehler: