Bei einer Vielzahl von Controls ist es manchmal einfacher, diese auf unterschiedlichen Panels zu platzieren. Das macht die Gestaltung des Layouts übersichtlicher und erweitert die Möglichkeiten Controls zu Gruppieren.
Code
import wnim/[wApp, wFrame, wPanel, wButton, wListCtrl]
let app = App()
let frame = Frame(title="Three Panels")
let panel1 = Panel(frame)
let panel2 = Panel(frame)
let panel3 = Panel(frame)
panel1.backgroundColor = 0xFEFEFE
panel2.backgroundColor = 0xF6F6F6
panel3.backgroundColor = 0xF0F0F0
let bt1 = Button(panel1, label="Button 1", pos=(10,10), size=(60,25))
let bt2 = Button(panel2, label="Button 2", pos=(10,10), size=(60,25))
let lc = ListCtrl(panel3, style=wLcReport or wBorderDouble or wLcSingleSel)
lc.appendColumn("Colum", width=wListAutosize)
lc.setColumnFormat(0, wListFormatCenter)
for i in 1..20:
lc.appendItem($i)
proc layout() =
frame.layout:
panel1:
left = 0
top = 0
height = frame.height / 2
width = frame.width / 2
panel2:
left = 0
top = frame.height / 2
height = frame.height / 2
width = frame.width / 2
panel3:
left = frame.width / 2
top = 0
height = frame.height
width = frame.width / 2
panel3.layout:
lc:
left = panel3.left + 10
top = panel3.top + 10
height = panel3.height - 20
width = panel3.width - 20
frame.wIdExit do ():
frame.delete()
frame.wEvent_Size do ():
layout()
layout()
frame.center()
frame.show()
app.mainLoop()
Alles anzeigen