- Offizieller Beitrag
Ich programmiere gerade eine Bildschirm-Tastatur. Für jede "Taste" möchte ich die selbe Prozedur aufrufen und innerhalb der Prozedur dann entsprechend der angeklickten "Taste" unterschiedlich verfahren.
Dazu brauche ich aber sowas wie @GUI_CtrlId in AutoIt. Gibt es sowas oder wie kann man das Problem sonst lösen?
Edit: Hier noch ein Testprogramm, wie ich es versucht habe zu lösen (geht nicht):
Code
import wNim
const aKeys = [
["Q", "W", "E", "R", "T", "Z", "U", "I", "O", "P", "<-"],
["A", "S", "D", "F", "G", "H", "J", "K", "L", "_", "<-'"],
["Y", "X", "C", "V", "B", "N", "M", ",", ".", "-", "+"]
]
var
aKeyBtn: array[0..32, wButton]
iX, iY, iW: int
let app = App()
let frame = Frame(title="Test", size=(1200, 340))
let panel = Panel(frame)
proc keyEvent(keyID: int) =
echo keyID
for i in 0..2:
iY = 10 + i * 80
for j in 0..10:
iX = 10 + i * 30 + j * 100
case i * 11 + j
of 10: iW = 150
of 21: iW = 120
else: iW = 90
aKeyBtn[i * 11 + j] = Button(panel, label=aKeys[i][j], pos=(iX, iY), size=(iW, 70), style=wBorderDouble)
aKeyBtn[i * 11 + j].font = Font(32, faceName="Source Code Pro", weight=wFontWeightBold)
aKeyBtn[i * 11 + j].wEvent_Button do ():
keyEvent(i * 11 + j)
frame.center()
frame.show()
app.mainLoop()
Alles anzeigen