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

Tablefield

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

Tablefield

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