2.131 .focus
In einem Dialog gibt es meistens genau ein Objekt, das den Tastatur-Fokus haben kann. Es wird in der gewohnten Weise vom darunterliegenden Fenstersystem angezeigt.
.focus ist ein Attribut mit einigen speziellen Eigenschaften:
- Es kann nicht von einer Vorlage oder einem Default vererbt werden.
- Es kann beim Definieren des Objektes nicht angezeigt werden.
- Der Datentyp des Attributes hängt von der Objektart und der Zugriffsweise ab.
- SetVal: Nur das Setzen des Fokus ist möglich, die Zurückstellung wird vom IDM automatisch ausgeführt.
Definition
-
Datentyp
boolean
-
Zugriff
get, set
-
changed-Ereignis
nein
SetValue
Das Objekt muss real_visible und real_sensitive sein.
Wenn das zugehörige Fenster das aktive Fenster der Anwendung ist, wird der Fokus gesetzt und angezeigt.
Wenn das zugehörige Fenster nicht das aktive Fenster der Anwendung ist, wird der Fokus nur intern gesetzt und als savedfocus
gespeichert.
Wenn ein Fenster deaktiviert oder wieder aktiviert wird, wird der Fokus wieder auf das Objekt gesetzt, das den Fokus zuletzt hatte, z.B. wird der Fokus in Bezugnahme auf das Fenster immer als savedfocus
gespeichert. Dies gilt jedoch nur solange das Fenster im Fenstersystem existiert.
Der Fokus kann nur gesetzt werden, das Zurücksetzen wird vom Dialog Manager automatisch ausgeführt.
Der Datentyp für normale Objekte ist boolean. Es wird nur true akzeptiert, false wird als Fehler zurückgewiesen.
Aus diesem Grund sind die folgenden Ausdrücke in der Regelsyntax zugelassen:
Lb.focus := true; Pb.focus := true; Wn.focus := true;
Objekt |
Verhalten für .focus |
---|---|
Canvas |
Der Fokus wird auf die entsprechende Canvas gesetzt und die zugehörige Canvas-Funktion CCR_focus aufgerufen. Wenn die Canvas gegenwärtig nicht im sichtbaren Bereich ihrer Eltern ist, werden die notwendigen Scroll-Operationen ausgeführt. Siehe auch Kapitel „Bedeutung des Attribut .options“ beim Objekt canvas in der „Objektreferenz“ |
Fenster |
Der Fokus wird auf das erste Objekt gesetzt (im Fenster), das real_sensitive und real_visible ist. Die Suche beginnt beim ersten Kind des Fensters, geht weiter zu den Kindern des ersten Kindes und schließlich zu den Brüdern des ersten Kindes. Wenn ein Objekt gefunden wird, das den Fokus haben kann, wird der Fokus auf dieses Objekt gesetzt. Wenn kein Objekt gefunden wurde, wird der Fokus auf das Fenster gesetzt. |
Groupbox |
Der Fokus wird auf das erste Objekt (in der Groupbox), das real_sensitive und real_visible ist gesetzt. Wenn ein Objekt gefunden wird, das den Fokus haben kann, wird der Fokus auf dieses Objekt gesetzt. Wenn kein Objekt gefunden wurde, wird der Fokus nicht vom aktuellen Fokus-Objekt übernommen, d.h. der Fokus bleibt unverändert. |
Checkbox |
Der Fokus wird auf das gegebene Objekt gesetzt und in der dem Objekt spezifischen Weise angezeigt. Wenn das Objekt gegenwärtig im Bereich seiner Eltern nicht sichtbar ist, werden die Scroll-Operationen ausgeführt, die notwendig sind, um das Objekt sichtbar zu machen. |
Editierbarer Text |
|
Listbox |
|
Poptext |
|
Pushbutton |
|
Radiobutton |
|
Rechteck* |
|
Scrollbar |
|
Statischer Text |
|
Menübox |
ungültig |
Menüeintrag |
ungültig |
Der Fokus wird auf das entsprechende Tablefield gesetzt. Um den Fokus auf bestimmte Felder zu setzen, muss für das Attribut .focus ein doppelter Index angegeben werden ([row, column]), der die Koordinaten des Feldes bestimmt: .focus [I,J] |
* Anmerkung
Das DM-Objekt Rechteck kann unter Motif keinen Fokus erhalten, daher kann der Fokus nicht auf dieses Objekt gesetzt werden. Beim Erfragen des Fokus für ein Rechteck wird false zurückgegeben.
GetValue
.focus kann für ein beliebiges Objekt angefordert werden. Die Rückgabe ist jedoch von der Objektklasse abhängig.
Objekt |
Datentyp |
Rückgabewert |
---|---|---|
Groupbox |
DM_ID |
Kind (von gegebenem Objekt), das den Fokus hat |
Fenster |
||
Canvas |
boolean |
true, wenn das angeforderte Objekt den Fokus hat. false, wenn das angeforderte Objekt den Fokus nicht hat. |
Checkbox |
||
Editierbarer Text |
||
Listbox |
||
Poptext |
||
Pushbutton |
||
Radiobutton* |
||
Rechteck |
||
Scrollbar |
||
Statischer Text |
||
index |
Index (s.o.), falls das Tablefield den Fokus hat; dann wird auf das durch den Index bestimmte Feld zugegriffen. |
* Anmerkung zum IDM für Windows
Ein Radiobutton wird aktiviert, wenn er den Fokus erhält.
Siehe auch
Attribut .focusitem