- Offizieller Beitrag
Servus.
Hab da eine Frage: WIe bekomme ich die ControlId des zuletzt ertsellten Controls heran? Bei UDF Funktion ist das
der letzte Eintrag in $_UDF_GlobalIDs_Used, aber wie sieht das bei den Standard Controls aus?
Servus.
Hab da eine Frage: WIe bekomme ich die ControlId des zuletzt ertsellten Controls heran? Bei UDF Funktion ist das
der letzte Eintrag in $_UDF_GlobalIDs_Used, aber wie sieht das bei den Standard Controls aus?
Hallo Raupi,
wenn du die ControlID im Ablauf des Skriptes noch benötigst, speichere sie doch einfach bei der Erstellung in eine Variable. Bis das nächste Control erstellt wird kannst du auch -1 anstelle dessen verwenden, in den mesiten Funktionen jedenfalls.
mfg (Auto)Bert
vielleicht verstehe ich ja das was falsch,
aber wenn ich ein Control mit einer Variable erstelle,
z.B. $variable1 = GuiCtrlCreate.......
ist der Inhalt der Variable $variable1 doch nichts anderes als die ControlID ?
Hallo Raupi,
die ControlID´s werden m.E. nach der Reihe bei Entstehung durchnummeriert. Das Control mit der "größten" ID ist dann das zuletzt erstellte
ciao
Andy
Das ganze hat den Sinn, das ich eine UDF Funktion auf den zuletzt erstellten Control anwenden will.
Also beim Aufruf mit Parameter -1 soll der zuletzt verwendete ControlId verwendet werden, wie bei den Standard Funtionen.
Nach einem bischen Grübeln habe ich eine Möglichkeit gefunden, an die ControlId des zuletzt erstellten Controls zu kommen.
Vielleicht kann es ja mal jemand gebrauchen.
[autoit]Func _GetLastControlId()
Local $hLastID = GUICtrlGetHandle(-1)
Local $iCtrlID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hLastID)
If IsArray($iCtrlID) Then $iCtrlID = $iCtrlID[0]
Return $iCtrlID
EndFunc
Danke an alle die sich den Kopf zerbrochen haben.