Button Checkbox aus GUI handeln Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Optimus Prime
Posts: 69
Joined: 04 Feb 2020, 02:47

Button Checkbox aus GUI handeln

28 May 2020, 15:34

Hallo Zusammen, ich stehe gerade mal wieder auf dem Schlauch.
Ich habe ein Tab 3 GUI gebastelt mit Buttons, Checkbox, Radio etc.
Diese Steuerelemente bekomme ich nun aber nicht durch die Hotkeys angesteuert und ich finde den Fehler einfach nicht.
Beispielsweise:

Code: Select all

Gui, Add, CheckBox, vCheckbox1, Parameter 1 aktivieren/deaktivieren[code]

Aktivierung über:
[code]!w:: 
send, {Tab}
sleep, 500
send, {Tab}
sleep, 500
send, {Tab}
sleep, 500
send, {Right}
sleep, 1000
control, check,,,,Parameter 1 aktivieren/deaktivieren,
return
Oder auch:

Code: Select all

Gui, Add, Button, ,Speichern
Aktivierung über:

ControlClick.

In beiden fällen werden die Steuerelemente nicht angewählt. Egal ob ich Bezug auf den Fenstertitel, Fenstertex etc. nehme?
Hat jemand einen sinnvollen Hinweis für mich?

Danke im Voraus
UnReALiTyy
Posts: 223
Joined: 06 Jun 2017, 11:38

Re: Button Checkbox aus GUI handeln

28 May 2020, 16:05

Ich verstehe zwar überhaupt nicht was diese Zeile darstellen soll:
Optimus Prime wrote:
28 May 2020, 15:34

Code: Select all

[code]!w::
Aber wenn du willst das eine Checkbox etwas auslöst musst du ihr ein G-label geben.
Wenn du dann noch willst das man dieses serperat auch per Hotkey aktivieren kann, musst du den Hotkey über den Label definieren.
So in etwa:

Code: Select all

Gui, Add, CheckBox, gCheck1 vCheckbox1, Parameter 1 aktivieren/deaktivieren[code]
Gui, Show, autosize

!w::
Check1:
send, {Tab}
sleep, 500
send, {Tab}
sleep, 500
send, {Tab}
sleep, 500
send, {Right}
sleep, 1000
control, check,,,,Parameter 1 aktivieren/deaktivieren,
return
Optimus Prime
Posts: 69
Joined: 04 Feb 2020, 02:47

Re: Button Checkbox aus GUI handeln

29 May 2020, 02:12

Guten Morgen UnReALiTyy,
die gLabel hatte ich auf dem Schirm aber auch so kriege ich es nicht realisiert.
Anbei das GUI:

Code: Select all

Gui, Destroy
Gui, Color, FFFFFF


Gui, Add, Tab, x12 y209 w610 h410 , Beispiel 1|Beispiel 2|

Gui, Tab, Beispiel 1
Gui, Add, Picture, x87 y-1 w460 h180 , C:\

Gui, Font, S15
Gui, Add, Edit, x70 y150 r1 vEdit1 w500 h200, Herzlich Willkommen!!!
Gui, Font, S20
Gui, Add, Text, x70 y350, Codeinhalt hier eingeben:
Gui, Font, S15
Gui, Add, Edit, x70 y400 r1 vEdit2 w500 h200, 
Gui, Font, S10
Gui, Add, Button,, Speichern
Gui, Add, Button, x472 y629 w150 h50 , Beenden
Gui, Add, Button, x302 y629 w150 h50 , Support


Gui, Tab, Beispiel 2
Gui, Add, Picture, x87 y-1 w460 h180 , C:\
Gui, Font, S20
Gui, Add, Text, x32 y249 w500 h30 , Parametrierung
Gui, Font, S15
Gui, Add, Text,, Parameter auswählen
Gui, Font, S10
Gui, Add, CheckBox, gCheck1 vCheckbox1, Parameter 1 aktivieren/deaktivieren
Gui, Add, CheckBox, gCheck2 vCheckbox2, Parameter 2 aktivieren/deaktivieren
Gui, Add, CheckBox, gCheck3 vCheckbox3, Parameter 3 aktivieren/deaktivieren
Gui, Font, S15
Gui, Add, Text,, Geschwindigkeit auswählen
Gui, Font, S10
Gui, Add, Radio, gRadio1 vRadio1, 25 Prozent
Gui, Add, Radio, gRadio2 vradio2, 50 Prozent
Gui, Add, Radio, gRadio3 vradio3, 75 Prozent
Gui, Add, Radio, gRadio4 vradio4, 100 Prozent
Gui, Add, Button, x472 y629 w150 h50 , Beenden
Gui, Add, Button, x302 y629 w150 h50 , Support

Hier sollen im Endeffekt durch Tastenkombinationen (ALT+x) alle Steuerelemente angesteuert werden:

Code: Select all

!a::
send, {Tab}
sleep, 500
send {Tab}
sleep, 500
send, {Tab}
sleep, 500
send, {Right}
Sleep, 1000
Check1:
control, Check,,,, Parameter 1 aktivieren/deaktivieren
Sleep, 500
Check2:
control, Check,,,, Parameter 2 aktivieren/deaktivieren
Sleep, 500
Check3: 
control, Check,,,, Parameter 3 aktivieren/deaktivieren
Sleep, 500
Radio1:
Control, Check,,,, 25 Prozent
Sleep, 500
Radio2:
Control, Check,,,, 50 Prozent
Sleep, 500
Radio3:
Control, Check,,,, 75 Prozent
Sleep, 500
Radio4:
Control, Check,,,, 100 Prozent
Die Sequenz zum Beginn wechselt von einer definierten Position in die Karte Beispiel 2. Auch hier klappt das direkte wechseln leider nicht.

Und danach sollen die GUIs aktiviert werden.
Des Weiteren interessiert mich an dieser Stelle was z.B. vCheckbox1 in den einzelnen Guis für eine Bedeutung hat?!?
Die reinste Form des Wahnsinns ist es, alles so zu belassen wie es ist und zu hoffen, dass sich etwas ändert [Albert Einstein]
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Button Checkbox aus GUI handeln

29 May 2020, 03:17

Moin,

vCheckbox1 ist der Name des Controls bzw. der Controlvariablen. Den benutzt man normalerweise, um ein (vorhandenes) GuiControl anzusprechen:

Code: Select all

GuiControl, , Checkbox1, 1 ; checked (1) oder unchecked (0) das Control
Deine anderen Probleme verstehe ich bisher nicht. Bei Tab-Controls mag es manchmal nötig sein, zunächst einmal den Tab des Controls zu aktivieren.

Im gLabel einer CheckBox muss man den Status der Checkbox nicht verändern, es sei denn, man will das normale Verhalten überschreiben will.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Button Checkbox aus GUI handeln

29 May 2020, 03:46

Des Weiteren interessiert mich an dieser Stelle was z.B. vCheckbox1 in den einzelnen Guis für eine Bedeutung hat?!?
Diese Frage lässt den Schluss zu, das der Code ursprünglich nicht von dir ist?!
Es handelt sich um das Setzen einer Variablenzuweisung für diese Checkbox. Der für diesen Controltyp übliche Rückgabewert "an/aus" lässt sich über diese Variable abfragen und damit weiterprozessieren.

Die Controls einer mit AHK generierten GUI werden zur Laufzeit des "GUI-script" gewöhnlich mit dem Befehl :arrow: GuiControl angesprochen.
AHK's Control- Befehlset funktioniert sicher auch, dürfte aber nicht ähnlich umfangreich auf AHK GUI's spezalisiert sein.

Code: Select all

#NoEnv
#SingleInstance, Force


Gui, Add, CheckBox, checked1 vCB1, CB1 ; Startwert der Variablen CB1 ist (checked)1. Control CB1 ist damit angewählt.
Gui, Add, CheckBox, checked0 vCB2, CB2 ; Startwert der Variablen CB2 ist (checked)0. Control CB2 ist damit abgewählt.
Gui, SHow, w200, % chr(32)
Return

!x::
	GuiControl,, CB1, 0 ; Änderung des aktuellen Wertes der Variablen CB1 auf 0. Control CB1 wird abgewählt.
	GuiControl,, CB2, 1 ; Änderung des aktuellen Wertes der Variablen CB2 auf 1. Control CB1 wird angewählt.
	Return

GuiEscape: ; Esc zum schließen des GUI
ExitApp
Wie hier einfach zu erkennen sein sollte, ist ein g(oSub)Label nur dann angesagt, wenn mit Betätigung des Controls eine unmittelbare Aktion/ein Event angestossen werden soll. z.B. beim Anklicken einer CheckBox wird ein Feld mit Zusatzoptionen geöffnet. Das ist hier jedoch nicht der Fall, ergo gLabel verzichtbar.
Optimus Prime
Posts: 69
Joined: 04 Feb 2020, 02:47

Re: Button Checkbox aus GUI handeln

29 May 2020, 04:19

Hallo Zusammen,

bei einem Thema sind wir schon weiter. Checkboxen und Radios werden über GuiControl und nicht über Control angesteuert.
Beim Button hapert es jedoch bei mir.

Code: Select all

Gui, Add, Button, x32 y249 w230 h30 , Dateien erstellen
Was muss ich in ein Skript schreiben, um diesen Button zu betätigen ohne die Maus zu benutzen? glabel etc. haben bei den Tests noch keine Ergebnisse erzielt :(
Die reinste Form des Wahnsinns ist es, alles so zu belassen wie es ist und zu hoffen, dass sich etwas ändert [Albert Einstein]
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Button Checkbox aus GUI handeln  Topic is solved

29 May 2020, 04:45

Bei einem Button ist es recht einfach. Normalerweise gibt man dem ein g-Label (z.B. gKlicked) um beim Drücken des Buttons eine Aktion auszuführen. Die kann man aber auch jederzeit manuell aufrufen:

Code: Select all

#NoEnv
Gui, Add, Button, w400 vKlickButton gKlicked, Klick mich!
Gui, Show, , Test
Sleep, 1000
Gosub, Klicked ; <<<<< Buttonaktion auslösen
Return
GuiClose:
ExitApp
Klicked:
MsgBox, 0, KlickButton, Du hast mich geklickt!
Return
Guest

Re: Button Checkbox aus GUI handeln

29 May 2020, 16:32

@ Bobo: Der Code ist aus dem Tutorial zum Testen gewesen ;)

Vielen Dank an dieser Stelle an Alle. Zusammenfassend kann man sagen das statt Controll - GuiControll genutzt werden muss, um Checkbxen und Radios zu steuern.
Buttons gehen über Gosub. Ich werde es mir merken für die Zukunft. Vielen Dank an Alle für den Support :)
Optimus Prime
Posts: 69
Joined: 04 Feb 2020, 02:47

Re: Button Checkbox aus GUI handeln

29 May 2020, 16:35

Lektion gelernt. gLabel nutzen. Radios und Checkboxen werden mit GuiControl angesteuert und Buttons via Gosub. Vielen Dank an alle für den Support und die Erläuterungen.
@ Bobo: Der Code stammt aus dem Tutorial ;)

Beste Grüße und schöne Pfingsten
Die reinste Form des Wahnsinns ist es, alles so zu belassen wie es ist und zu hoffen, dass sich etwas ändert [Albert Einstein]

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 92 guests