39 spinbox

Eine spinbox ist ein Containerobjekt, das aus zwei Pfeiltasten besteht und genau ein Kindobjekt enthält, bei dem es sich um einen einzeiligen edittext oder statictext handeln muss, der zur Anzeige des momentan eingestellten Wertes dient. Bei einer Wertänderung der spinbox – die entweder durch Betätigung einer Pfeiltaste oder durch eine Wertzuweisung erfolgt – wird der Inhalt des Anzeigefeldes automatisch aktualisiert.

Definition

{ export | reexport } { model } spinbox  { <Bezeichner> }
{
  <Standardattribute>
  <Allgemeine Attribute>
  <Geometrieattribute>
  <Hierarchieattribute>
  <Layoutattribute>
  <Textattribute>
  <Objektspezifische Attribute>
}

Ereignisse

cut

extevent

help

key

paste

scroll

Kinder

document

1 edittext oder 1 statictext

record

transformer

Vater

groupbox

layoutbox

notepage

splitbox

toolbar

window

Menü

Popup-Menü

Methoden

:delete()

:exchange()

:find()

:insert()

39.1 Attribute

.acc_label

.acc_text

.activeitem

.borderstyle

.child[integer]

.childcount

.class

.control

curvalue

.cut_pending

.cut_pending_changed

.deltavalue

.dialog

direction

.document[integer]

.external

.external[integer]

.focus

.firstchild

.firstrecord

.font

.height

.itemcount

.index

.label

.lastchild

.lastrecord

.layoutbox

.mapped

.maxvalue

.member[integer]

.membercount

.minvalue

.model

.notepage

options[enum]

.parent

.real_height

.real_visible

.real_width

.record[integer]

.recordcount

.scope

.sensitive

.statushelp

style

.text[integer]

tile

.tilestyle

.toolbar

.toolhelp

.userdata

.visible

.width

.window

wrap

.xraster

.yraster

39.2 Spezifische Attribute

Attribut Beschreibung

.activeitem

Index des aktuell angezeigten Textes (nur bei .style = string).

.borderstyle

Definiert den Stil, also Darstellung und Ausprägung, des Rahmens (ab IDM-Version A.06.01.a).

Attribut wird unterstützt, jedoch nur border_none und border_toolkit zulässig. border_plain, border_raised und border_sunken werden als border_toolkit umgesetzt.

curvalue

Gibt den momentan angezeigten Wert an (nur bei .style <> string).

.deltavalue

Bestimmt den Differenzwert, um den .curvalue pro Schritt erhöht bzw. erniedrigt werden soll (nur bei .style <> string).

direction

Ausrichtung der Spinbox-Buttons.

1 – Vertikale Ausrichtung (default).

2 – Horizontale Ausrichtung.

.itemcount

Anzahl der Einträge des Objekts (nur bei .style = string).

.maxvalue

Maximal angezeigter Wert (nur bei .style <> string).

.minvalue

Minimal angezeigter Wert (nur bei .style <> string).

options[enum]

Optionen des Objekts.

Indizes:

opt_center_toolhelp (nur MS Windows).

style

Definiert, was in der Spinbox angezeigt werden soll.

integer – Integerwerte (default).

string – Texte.

void – anwendungsgesteuertes Spinning.

.text[integer]

Definiert die einzelnen anzuzeigenden Texte des Objekts.

(nur bei .style = string)

Bitte beachten Sie auch das Kapitel „Wertsetzung an der Spinbox“.

tile

Definiert das Hintergrundbild des Objekts

.tilestyle

Gibt die Art und Weise an, wie das in tile definierte Hintergrundbild dargestellt wird.

wrap

Steuert, ob ein zirkuläres Spinning erfolgt (Default) oder beim Erreichen der Unter- bzw. der Obergrenze das Spinning abgebrochen wird.

39.2.1 Wertsetzung an der Spinbox

Die Spinbox bestimmt selbst den Wert der Attribute .content bzw. .text am Kindobjekt. Aus diesem Grund sollten diese Attribute nicht am Kindobjekt geändert werden. Stattdessen sollten immer .activeitem und .text (.style = string) bzw. .curvalue (.style = integer) an der Spinbox gesetzt werden.

Insbesondere ist es zu vermeiden, .content bzw. .text des Kindobjekts auf einen inkonsistenten Wert zu setzen, da hier der angezeigte Text zufällig sein kann.

Achtung

Das Ändern von .activeitem und .text bzw. .curvalue an der Spinbox ändert immer auch .content bzw. .text am Kindobjekt! Deshalb ist es unter allen Umständen zu vermeiden diese Attribute zu ändern, während der Anwender den Text bearbeitet (Kindobjekt besitzt den Focus). Während dieser Textänderung durch den Anwender ist auch die einzige Situation gegeben, in der eine direkte Setzung von .content/.text am Kindobjekt sinnvoll sein kann.

39.3 Anmerkungen für Dialog Manager mit Microsoft Windows

Zur Benutzung einer Radmaus zum Scrollen bitte Kapitel „Radmaus bzw. Radmausunterstützung unter Microsoft Windows“ beachten.

39.4 Beispiel

dialog Spinbox

{

}

color White "WHITE", grey(0);

window Wn

{

  .xleft 73;

  .width 260;

  .ytop 29;

  .height 222;

  .title "Testfenster";

 

  child spinbox Sp1

  {

    .xleft 62;

    .ytop 64;

    .curvalue 1;

 

    child edittext

    {

      .xauto 0;

      .xleft 0;

      .xright 0;

      .yauto 0;

      .ytop 0;

      .ybottom 0;

    }

  }

 

  child spinbox Sp2

  {

    .xleft 62;

    .width 100;

    .ytop 113;

    .style string;

    .maxvalue 7;

    .text[1] "Montag";

    .text[2] "Dienstag";

    .text[3] "Mittwoch";

    .text[4] "Donnerstag";

    .text[5] "Freitag";

    .text[6] "Samstag";

    .text[7] "Sonntag";

    .activeitem 1;

 

    child edittext Et2

    {

      .xauto 0;

      .xleft 0;

      .xright 0;

      .yauto 0;

      .ytop 0;

      .ybottom 0;

    }

  }

}

Abbildung 16-38: Spinbox