Die Funktion hatte ich schmerzlich vermisst. Deshalb habe ich sie mir erstellt.
Ich war auf Irrwegen - s. Post #5
Um Zugriff auf die fenstertypischen Prozeduren zu bekommen muss nur wWindow importiert werden:
Nim
# compile: nim c --app:gui testfocus.nim
include winim/[inc\winuser]
import wNim/[wApp, wFrame, wPanel, wListBox, wTextCtrl]
# sets the focus to passed handle
# required: include winim/[inc\winuser]
proc setFocus(hwnd: HWND): WINBOOL {.discardable, stdcall, dynlib: "user32", importc: "SetFocus".}
let
app = App()
frame = Frame(title="Test Focus",size=(400,250))
panel = frame.Panel()
lb = panel.ListBox(style=wLbNeededScroll or wLbNoSel)
tc = panel.TextCtrl(style=wBorderSunken)
for e in @["Eintrag A","Eintrag B","Eintrag C","Eintrag D"]:
lb.append(e)
# Fokus liegt jetzt auf: lb
# setzen auf: tc
tc.setFocus()
proc layout() =
panel.layout:
lb:
left = 10
top = 30
width = 120
height = 100
tc:
left = 20
top = lb.bottom + 20
width = 80
height = 20
frame.wIdExit do ():
frame.delete()
layout()
frame.center()
frame.show()
app.mainLoop()
Alles anzeigen