[ TAG 436 ][31.05.2022] -Erfolgreich -IAP-20220403-20220403-1150 -Positionierungsproblem
Funktion: [ DeFSTL_FNC_FRM ]
Attribute:
stl_key: GRP02-FRM06
defstl: {
stl_key: GRP02-FRM06
defstl: {
'x': None,
'y': None,
'width': None,
'height': None,
'bg': None,
'widget': None,
'alignment': None
}
userstl: {
userstl: {
'x': None,
'y': None,
'width': None,
'height': None,
'bg': None,
'alignment': None,
'widget': None
}
chld: ['GRP02-FRM06-LBL00', 'GRP02-FRM06-LBL01', 'GRP02-FRM06-ENT00']
chld: ['GRP02-FRM06-LBL00', 'GRP02-FRM06-LBL01', 'GRP02-FRM06-ENT00']
Als erstes wird die [ bg ]-Eigenschaft überprüft und auf default gesetzt.
Die nächste Eigenschaft ist [ alignment ]. Hier sind nur folgende Zeichenketten als Werte erlaubt.
si_algH = "HORIZONAL"
si_algV = "VERTICAL"
Sollten die gesetzten Werte in der [ alignment ]-Eigenschaft nicht den vorgegebenen Werten entsprechen, wird die [ alignment ]-Eigenschaft auf "HORIZONTAL" gesetzt.
----------------------------------------------
if userstl[si_bg] is None:
if defstl[si_bg] is not None:
userstl[si_bg] = defstl[si_bg]
else:
userstl[si_bg] = "Blue"
if userstl[si_alg] is None:
if defstl[si_alg] is not None:
userstl[si_alg] = defstl[si_alg]
else:
userstl[si_alg] = si_algH
else:
bol = True
if userstl[si_alg] == si_algH:
bol = False
if userstl[si_alg] == si_algV:
bol = False
if bol:
userstl[si_alg] = si_algH
----------------------------------------------
Im nächsten Schritt wird die Mindest-Breite und Mindest-Höhe gesetzt.
----------------------------------------------
if userstl[si_width] is None:
if defstl[si_width] is not None:
if defstl[si_width] > min_width:
userstl[si_width] = defstl[si_width]
else:
userstl[si_width] = min_width
elif userstl[si_width] < min_width:
userstl[si_width] = min_width
if userstl[si_height] is None:
if defstl[si_height] is not None:
if defstl[si_height] > min_height:
userstl[si_height] = defstl[si_height]
else:
userstl[si_height] = min_height
elif userstl[si_height] < min_height:
userstl[si_height] = min_height
----------------------------------------------
Das Problem der Restbreite besteht darin, dass wenn ich zum Beispiel ein FRM von 70px Breite habe. Und diese Breite teile ich Beispielsweise durch 3.
- 70/3 = 23.3333
Die Elemente können nur ganze Zahlen breit sein. Somit ist demnach jedes Element nur 23px breit.
- 23*3 = 69 Rest 1
- 0,3333*3 = 0,9999
Anderes Beispiel
- 70/4 = 17,5
- 17*4 = 68 Rest 2
- 0,5*4 = 1,5
- ----------------------
- 70/6 = 11,6666
- 11*6 = 66 Rest 4
- 0,6666*6 = 3,9996
Wenn das letzte Element den ganzen Rest bekommt, wird mit zunehmender Zahl die Breite des letzten Elementes immer mehr auffallen.
Besser wäre es, wenn man zum Beispiel bei [Rest=4] die Breite der letzten vier Elemente zum Beispiel jeweils um 1 erhöht.
Dies lässt sich mit einer einfachen For-Schleife realisieren.
Mein nächster Gedanke besteht noch darin, die Kind-Elemente des [ FRM ] mit Margin-Eigenschaften auszustatten.
Kommentare
Kommentar veröffentlichen