32 progressbar

Das progressbar-Objekt ermöglicht es den Verlauf einer länger andauernden Aktion visuell darzustellen. Hierzu wird eine Art Balken angezeigt, dessen Länge dem Fortschritt der Aktion angepasst wird. Dadurch kann der Anwender abschätzen, wie weit die Aktion fortgeschritten ist und wie lange sie noch dauern wird.

Definition

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

Ereignisse

cut

extevent

focus

help

paste

Kinder

document

record

transformer

Vater

groupbox

layoutbox

module

notepage

splitbox

statusbar

toolbar

window

Menü

Popup-Menü

32.1 Attribute

.accelerator

.active

.bgc

.borderstyle

.borderwidth

.control

.cursor

curvalue

.cut_pending

.cut_pending_changed

.dialog

direction

.document[integer]

.external

.external[integer]

.fgc

.firstrecord

.focus

.font

.function

.groupbox

.height

.help

.label

.lastrecord

.layoutbox

.mapped

maxvalue

minvalue

.model

.module

.navigable

.notepage

options[enum]

.parent

.posraster

.real_height

.real_sensitive

.real_visible

.real_width

.record[integer]

.recordcount

.scope

.sensitive

.sizeraster

.source

.statushelp

style[enum]

.target

.textfgc

.toolhelp

.userdata

.visible

.width

.window

.xauto

.xleft

.xright

.yauto

.ybottom

.ytop

32.2 Spezifische Attribute

Attribut Beschreibung

curvalue

Gibt die Position des Fortschrittsbalkens an.

Siehe auch Kapitel „Berechnung des Fortschrittsbalkens“.

.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.

.borderwidth

Rahmenbreite des Objekts.

Unter Microsoft Windows wird ein Standardrahmen gezeichnet, wenn der Wert des Attributs größer 0 ist. Es kann also lediglich bestimmt werden, ob ein Rahmen da ist oder nicht. Die Breite kann nicht beeinflusst werden.

direction

Ausrichtung der Progressbar.

1 bedeutet vertikale Ausrichtung, der Balken läuft von unten nach oben

2 bedeutet horizontale Ausrichtung, der Balken läuft von links nach rechts

maxvalue

Maximalwert des Progress-Bereiches.

Siehe auch Kapitel „Berechnung des Fortschrittsbalkens“.

minvalue

Minimalwert des Progress-Bereiches.

Siehe auch Kapitel „Berechnung des Fortschrittsbalkens“.

options[enum]

Optionen des Objekts.

Index: opt_center_toolhelp (nur MS Windows).

style[enum]

Aussehen des Fortschrittbalkens.

Indizes:

style_continuous – Darstellung kontinuierlich (true) oder in Blöcken (false).

style_labeled – Beschriftung (true) oder nicht, nur bei horizontaler Ausrichtung.

.textfgc

Farbe der Beschriftung (soweit vom System unterstützt), bei null wird der Defaultwert des jeweiligen Systems genommen.

32.2.1 Berechnung des Fortschrittsbalkens

Das Attribut .curvalue gibt die Position des Fortschrittsbalken an. Außerdem wird aus diesem Wert die Prozentangabe berechnet, die als optionale Beschriftung angezeigt wird. Bei einem Wert gleich .minvalue ist kein Balken sichtbar, die Prozentangabe ist 0%. Bei einem Wert gleich .maxvalue dagegen ist der gesamte Balken sichtbar und die Prozentangabe ist 100%. Die Werte dazwischen werden entsprechend umgerechnet. Der Balken läuft immer von links nach rechts bzw. von unten nach oben, egal ob .minvalue größer oder kleiner als .maxvalue ist.

32.3 Anmerkung zur Progressbar unter Microsoft Windows

Anmerkung für aktive Visual Styles:

Die Farbgebung der Visual Styles lässt sich nicht einer gesetzten Farbe anpassen. Um unschöne Farbkombinationen zu vermeiden wird empfohlen, soweit als möglich auf eine Farbsetzung verzichten.

Insbesondere Abgeraten wird vor der Verwendung von .fgc am progressbar Objekt (es erfolgt ansonsten die Darstellung des Fortschrittbalkens mit einem breiten, von den Visual Styles stammenden Rahmen).

32.4 Beispiel

dialog D {}
...
import M1  "m1.if"  { .load false; }
import M2  "m2.if"  { .load false; }
import M3  "m3.if"  { .load false; }
import M4  "m4.if"  { .load false; }
import M5  "m5.if"  { .load false; }
import M6  "m6.if"  { .load false; }
import M7  "m7.if"  { .load false; }
import M8  "m8.if"  { .load false; }
import M9  "m9.if"  { .load false; }
import M10 "m10.if" { .load false; }
...
window WnModLoad
{
  .title  "Module werden geladen ...";
  .width  300;
  .height 100;
  .dialogbox   true;
  .sizeable    false;
  .closeable   false;
  .iconifyable false;
  .borderwidth 1;
 
  progressbar PrModLoad
  {
    .xauto   0;
    .yauto   0;
    .xleft   5;
    .xright  5;
    .ytop    10;
    .ybottom 10;
    .style[style_continous] false;
 
    .minvalue 0;
    .maxvalue 10;
    .curvalue 0;
  }
}
...
on dialog start
{
  M1.load := true;
  PrModLoad.curvalue := 1;
  M2.load := true;
  PrModLoad.curvalue := 2;
  M3.load := true;
  PrModLoad.curvalue := 3;
  M4.load := true;
  PrModLoad.curvalue := 4;
  M5.load := true;
  PrModLoad.curvalue := 5;
  M6.load := true;
  PrModLoad.curvalue := 6;
  M7.load := true;
  PrModLoad.curvalue := 7;
  M8.load := true;
  PrModLoad.curvalue := 8;
  M9.load := true;
  PrModLoad.curvalue := 9;
  M10.load := true;
  PrModLoad.curvalue := 10;
  WnModLoad.visible := false;
  ...
}