| |
|
|
Georg Teles | Guten Abend,
anbei ein Quelltext, bei dem man auf das Klicken der Buttons reagiert ohne dessen Variablennamen zu kennen. Das Workarea entstand, da man bei bestimmten Programmen Buttons beim Start ToGo definieren muss, sodass die absoluten Variablennamen nicht bekannt oder erst garnicht definiert sind.
CLS
Create("Button",%hWNd,"Button 1",300,5,200,40)
Create("Button",%hWNd,"Button 2",300,50,200,40)
Create("Button",%hWNd,"Button 3",300,95,200,40)
var active_button% = 0
' 1. Alternative wenn angeklickt
While 1=1
WaitInput
' SKControl Buttons = 272 statt 78 !
' SKControl lieber 2. ALternative benutzen (Focus) da Klick nicht funktioniert !
If ((%Message = 32) OR (%Message = 78))
active_button% = %GetFocus
If Clicked(active_button%)
Print "Handle: ";active_button%;" Text: ";GetText$(active_button%)
SetFocus(%hWnd)' wichtig den Fokus zurückzusetzen
EndIf
active_button% = 0
EndIf
EndWhile
END
' 2. Alternative bereits bei FOCUS
While 1=1
WaitInput
' SKControl Buttons = 272 statt 78 !
If ((%Message = 32) OR (%Message = 78))
active_button% = %GetFocus
Print "Handle: ";active_button%;" Text: ";GetText$(active_button%)
SetFocus(%hWnd)' wichtig den Fokus zurückzusetzen
active_button% = 0
EndIf
EndWhile
Grüße |
|
|
| |
|
|
|
Jörg Sellmeyer | Ich sammel bei solchen Gelegenheiten die Handles der erzeugten Buttons in einer Liste und kann dann mit %getfocus suchen, welche das sind. Mit GetHandle(%ItemID) kommst du auch sehr gut an das jeweilige Handle. |
|
|
| |
|
|
|
Georg Teles | Hi, quasi in einer Liste sammeln und auswerten
in meinem konkreten Fall tue ich das auch, beim Erstellen sammel ich die Handles in einer Grid wo zum ButtonHandle noch das entsprechende Programm, das gestartet wird sowie dessen Pfad und Zusatzparameter kommen.
Die Auswertung der Variablen spar ich mir und greife direkt auf das Handle wie Du
Grüße |
|
|
| |
|
|
|
| Und dann gibt es noch gwl_userData und gwl_wndProc! |
|
|
| |
|
|
|
Michael W. | aus dem Nichts kommend? Wie kommt man da heran. |
|
|
| |
|
|
|
| Vielleicht habe ich das Problem falsch verstanden.
Was ich meinte war eher, dass man ein Control z.B. mit gwl_userData ebenso mit Informationen versehen kann die nach %getFocus ausgelesen werden könnten. |
|
|
| |
|
|
|
Michael W. | Ah, ok.
P.S.: gwl_userData und gwl_wndProc liefern ja eine wahre Fundgrube an Ideen. Buttons in Taskbar, Subclassing, ...
Ist per später notiert... Danke |
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 31.10.2020 ▲ |
|
|
|