[ TAG 436 ][31.05.2022] -Erfolgreich -IAP-20220403-20220403-1150 -Positionierungsproblem

Funktion: [ DeFSTL_FNC_FRM ]
Attribute:
stl_key: GRP02-FRM06
defstl: {
    'x': None, 
    'y': None, 
    'width': None, 
    'height': None, 
    'bg': None, 
    'widget': None, 
    'alignment': None
}
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']

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

Beliebte Posts aus diesem Blog

[ TAG 38 ][29.05.2021] - Erfolgreich - Freelancer-Portale

[ TAG 747 ][07.04.2023] -Erfolgreich -BNKTRS -Google Code -Objekt und Methodenliste

[ TAG 52 ][12.06.2021] - Erfolgreich - IAP-20210601-20210609-2325