2.24 .borderraster

Mit Hilfe dieses Attributes kann bei einem Objekt mit Rahmen konfiguriert werden, dass die Geometrie so berechnet wird, als ob es keinen Rahmen besäße.

Definition

  • Datentyp

    boolean

  • Zugriff

    get, set

  • changed-Ereignis

    ja

Normalerweise werden folgende Anpassungen bei Objekten mit Rahmen ausgeführt:

  • Verschiebung um eine halbe Rastereinheit bei der Berechnung der Position eines Objektes mit Rasterkoordinaten.
  • Verkleinerung um eine Rastereinheit bei der Berechnung der Größe eines Objektes mit Rastergröße.
  • Verschiebung um eine halbe Rastereinheit bei der Berechnung der Position der Kindobjekte mit Rasterkoordinaten, sofern das Objekt Kinder besitzen kann.

Diese Anpassungen lassen sich mit diesem Attribut abschalten. Der Effekt ist analog zum Abschalten des Rahmens an einem groupbox Objekt (.borderwidth := 0).

Der Unterschied besteht darin, dass der Rahmen bei .borderraster = false weiterhin gezeichnet wird. Das Attribut zeigt nur Wirkung, wenn das Objekt einen Rahmen besitzt und wenn Rasterkoordinaten verwendet werden. Beeinflusst werden dann die Position (.posraster = true), die Größe (.sizeraster = true) und gegebenenfalls auch die Position der Kindobjekte, wenn deren Position in Raster angegeben wird.

Die folgende Tabelle gibt einen Überblick über die Unterstützung des Attributs .borderraster an den einzelnen Dialog Manager Objekten:

canvas

unterstützt, wenn .borderwidth > 0

checkbox

nicht unterstützt

control

nicht unterstützt

edittext

unterstützt, wenn .multiline = true

groupbox

unterstützt, wenn .borderwidth > 0

image

nicht unterstützt

layoutbox

unterstützt, wenn .borderwidth > 0

listbox

unterstützt

notebook

unterstützt

notepage

unterstützt, wenn .borderwidth > 0

poptext

unterstützt, wenn .style = listbox

progressbar

nicht unterstützt

pushbutton

nicht unterstützt

radiobutton

nicht unterstützt

rectangle

unterstützt, wenn .borderwidth > 0

scrollbar

nicht unterstützt

spinbox

nicht unterstützt

splitbox

unterstützt, wenn .borderwidth > 0

statictext

nicht unterstützt

statusbar

nicht unterstützt

tablefield

unterstützt

toolbar

unterstützt, wenn .docking = dock_window OR .borderwidth > 0

treeview

unterstützt

window

unterstützt

Wertebereich

true

Die Berechnung der Rasterkoordinaten findet wie üblich (analog zu früheren Dialog Manager Versionen) statt.

Dies bedeutet für Objekte mit Rahmen:

  • Das Objekt wird um eine halbe Rastereinheit verschoben, wenn die Position in Rastereinheiten angegeben ist (.posraster = true).
  • Das Objekt wird um eine Rastereinheit verkleinert, wenn die Größe in Rastereinheiten angegeben ist (.sizeraster = true).
  • Die Kindobjekte werden um eine halbe Rastereinheit verschoben, wenn ihre Position in Rastereinheiten angegeben ist (.posraster = true).

    Das Objekt muss natürlich Kindobjekte zulassen und besitzen.

false

Die Berechnung der Rasterkoordinaten eines Objektes mit Rahmen findet so statt, als wenn das Objekt keinen Rahmen besäße. Die beim Wert „true“ erwähnten Anpassungen finden nicht statt.

Hinweis

Es werden lediglich die beim Wert „true“ erwähnten Anpassungen nicht durchgeführt; es kann also trotz .borderraster = false sein, dass ein Objekt mit Rahmen nicht exakt in derselben Zeile dargestellt wird, wie ein anderes Objekt ohne Rahmen. Dies liegt dann an anderen Faktoren. Die entsprechenden Objekte würden auch nicht exakt in einer Zeile liegen, wenn sie in Pixelkoordinaten positioniert würden.

Referenzen und Abhängigkeiten

Die Einteilung Objekt mit Rahmen bzw. Objekt ohne Rahmen ist eine Dialog Manager Einteilung und betrifft die Art und Weise, wie Rasterkoordinaten in Pixelwerte umgerechnet werden. Diese Einteilung hat nichts damit zu tun, ob vom betreffenden Fenstersystem tatsächlich ein Rahmen um das Objekt gezeichnet wird.

Momentan gilt folgenden Einteilung:

Objekte ohne Rahmen

canvas

wenn .borderwidth = 0

checkbox

 

control

 

edittext

wenn .multiline = false

groupbox

wenn .borderwidth = 0

image

 

layoutbox

wenn .borderwidth = 0

notepage

wenn .borderwidth = 0

poptext

wenn .style <> listbox

progressbar

 

pushbutton

 

radiobutton

 

rectangle

wenn .borderwidth = 0

scrollbar

 

spinbox

 

splitbox

wenn .borderwidth = 0

statictext

 

toolbar

wenn .docking <> dock_window AND .borderwidth = 0

Objekte mit Rahmen

canvas

wenn .borderwidth > 0

edittext

wenn .multiline = true

groupbox

wenn .borderwidth > 0

layoutbox

wenn .borderwidth > 0

listbox

 

notebook

 

notepage

wenn .borderwidth > 0

poptext

wenn .style = listbox

rectangle

wenn .borderwidth > 0

splitbox

wenn .borderwidth > 0

statusbar

wenn .borderwidth > 0

tablefield

 

toolbar

wenn .docking = dock_window OR .borderwidth > 0

treeview

 

window

 

Das .borderraster-Attribut wirkt nur auf das toolbar-Objekt, wenn es ausgedockt ist (.docking = dock_window). Im eingedockten Zustand wirkt das Attribut nur auf die Kindobjekte des toolbar-Objekts (vorausgesetzt: .borderwidth > 0).

Besitzt ein Objekt keinen Rahmen, dann bleibt eine Änderung von .borderraster ohne Wirkung.

Durch das Setzen von .borderraster auf den Wert false werden Objekte nicht Pixelgenau auf derselben Position erscheinen. Der Effekt wird vielmehr so sein, wie wenn die beteiligten Objekte mit Pixelkoordinaten auf dieselbe Position gesetzt worden wären.

Es ist zu beachten, dass Objekte ohne Rahmen auch einzeilig sein können. Solche Objekte werden in der angegebenen Rasterzeile zentriert, wenn sie Rasterkoordinaten verwenden (.posraster = true) und keine Höhe besitzen (.height = 0).

Einzeilige Objekte

checkbox

 

edittext

wenn .multiline = false

poptext

wenn .style <> listbox

progressbar

wenn .direction = 2

pushbutton

 

radiobutton

 

scrollbar

wenn .direction = 2

spinbox

 

statictext

 

Andere Anpassungen werden weiterhin durchgeführt, auch wenn das Attribut .borderraster den Wert false besitzt. Insbesondere werden die Anpassungen zur Kompatibilität mit anderen Versionen, wie .options[opt_wntsizebug_compat] und .options[opt_w2kprefsize_compat], weiterhin durchgeführt.