- Offizieller Beitrag
Bei der GUI-Gestaltung mit gleichen Elementen, tabellenförmig angeordnet, probiert man ja meist etwas, bis es passabel aussieht. D.h., Anzahl Zeilen, Spalten sowie Abstände variieren.
Mit diesem Snippet fällt alle Rechnerei weg, es werden nur die Startwerte verändert. Bsp. ist mit Button, kann natürlich mit anderen Controls genauso verwendet werden.
Python
Global $hGui = GUICreate('Test')
; Definieren der variablen Größen
Global $iColumn = 7 ; Anzahl Spalten
Global $iLine = 4 ; Anzahl Zeilen
Global $iStartX = 30 ; x Position für das erste Element
Global $iStartY = 20 ; y Position für das erste Element
Global $iWidth = 40 ; Breite jedes Elements
Global $iHeight = 25 ; Höhe jedes Elements
Global $iSpaceH = 10 ; horizontaler Abstand zwischen den Elementen
Global $iSpaceV = 20 ; vertikaler Abstand zwischen den Elementen
; Button Text kann vorab im Array, das nachher die ID speichert, hinterlegt werden
Global $aButton[$iColumn*$iLine] = ['Anna','Berta','Cäsar','Dora','Emil','Fritz','Gero','Hans']
For $i = 0 To ($iColumn*$iLine -1)
$aButton[$i] = GUICtrlCreateButton( ($aButton[$i]<>'' ? $aButton[$i] : $i+1), _ ; Button Text
$iStartX+Mod($i,$iColumn)*($iWidth+$iSpaceH), _ ; x Position
$iStartY+(($i-Mod($i,$iColumn))/$iColumn)*($iHeight+$iSpaceV), _ ; y Position
$iWidth, $iHeight ) ; Breite & Höhe
Next
GUISetState()
While True
$nMsg = GUIGetMsg()
If $nMsg = -3 Then
Exit
Else
For $i = 0 To UBound($aButton) -1
If $nMsg = $aButton[$i] Then
ConsoleWrite('Clicked: ' & GUICtrlRead($nMsg) & @CRLF)
ExitLoop
EndIf
Next
EndIf
WEnd
Alles anzeigen