Gui Fragenkette

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Gui Fragenkette

Re: Gui Fragenkette

Post by MrRobot123 » 09 May 2019, 06:00

Danke für eure Hilfe!
Hat mir gut geholfen!

Re: Gui Fragenkette

Post by Guest » 09 May 2019, 05:59

Danke für eure Hilfe!
Hat mir richtig gut geholfen.

Re: Gui Fragenkette

Post by just me » 09 May 2019, 03:59

Moin,

die 'einfachste' Möglichkeit besteht meiner Meinung nach darin, das Fenster nach jeder Antwort zu zerstören und komplett neu aufzubauen. Dann kannst Du auch die Namen der Variablen für die Steuerelemente 'wiederverwenden'. Das wird deutlich flexibler, wenn man es mit Frage- und Antwortlisten kombiniert:

Code: Select all

#NoEnv
; Fragenliste
Fragen =
(
Frage 1
Frage 2
Frage 3
)
; Antwortenliste
Antworten =
(
Antwort 1|Antwort 2|Antwort 3
Antwort 4|Antwort 5|Antwort 6
Antwort 7|Antwort 8|Antwort 9
)
; Array mit Fragen erstellen
FragenArray := StrSplit(Fragen, "`n", "`r")
; Array mit Antworten erstellen
AntwortArray := []
For Index, Zeile In StrSplit(Antworten, "`n", "`r")
   AntwortArray[Index] := StrSplit(Zeile, "|")
AnzahlFragen := FragenArray.Length()
FrageNummer := 0
GoSub, FensterErstellen
Return

FensterErstellen:
If (FrageNummer < AnzahlFragen) {
   FrageNummer += 1
   Gui, Destroy
   Gui, +AlwaysOnTop
   Gui, Add, Text, , % FragenArray[FrageNummer]
   Gui, Add, Radio, vAntwort, % AntwortArray[Fragenummer, 1]
   Gui, Add, Radio,         , % AntwortArray[Fragenummer, 2]
   Gui, Add, Radio,         , % AntwortArray[Fragenummer, 3]
   Gui, Add, Button, Default, OK
   Gui, Margin, 150, 40
   Gui, Show, x1000 y150, Fragen
   Return
}
MsgBox, 0, Programmende, Alle Fragen wurden bearbeitet.`nDas Programm wird beendet.
ExitApp

ButtonOK:
Gui, Submit, NoHide
If (Antwort = 0) {
   MsgBox, 0, Achtung!, Wählen Sie bitte eine Antwort aus!
   Return
}
; Mach hier mit der Antwort, was immer Du willst
MsgBox, 0, Antwort, % AntwortArray[Fragenummer, Antwort]
Gosub, FensterErstellen
Return

GuiClose:
ExitApp
Moin jNizM,
das hat bei mir wirklich lange gedauert.

Re: Gui Fragenkette

Post by jNizM » 09 May 2019, 03:26

Hi,

entweder schließt du die erste Gui, bevor du die zweite öffnest, oder du arbeitest mit Gui-Namen (https://ahkde.github.io/docs/commands/Gui.htm#New)

Das wäre eine von mehreren Möglichkeiten (Goto):

Code: Select all

Gui1:
Gui, Add, Text,, % "1. Gui"
Gui, Add, Radio, vRB1, % "1. RB"
Gui, Add, Radio, vRB2, % "2. RB"
Gui, Add, Button, gBT1, % "OK"
Gui, Show, w150 h120
return

Gui2:
Gui, Add, Text,, % "2. Gui"
Gui, Add, Radio, vRB3, % "3. RB"
Gui, Add, Radio, vRB4, % "4. RB"
Gui, Add, Button, gBT2, % "OK"
Gui, Show, w150 h120
return

BT1:
Gui, Submit, NoHide
if (RB1)
	MsgBox % "1. RB"
else if (RB2)
	MsgBox % "2. RB"
else
	MsgBox % "keine RB"
Gui, Destroy
Goto, Gui2
return

BT2:
Gui, Submit, NoHide
if (RB3)
	MsgBox % "3. RB"
else if (RB4)
	MsgBox % "4. RB"
else
	MsgBox % "keine RB"
Gui, Destroy
Goto, GuiEnd
return

GuiEnd:
ExitApp

Gui Fragenkette

Post by MrRobot123 » 09 May 2019, 02:35

Hallo Zusammen,

ich würde mehrere Fragen hintereinander bekommen.
Bei Anklicken einer Antwortmöglichkeit sollte Text ausgegeben werden.
Mit einer Frage funktioniert alles. Ab 2 Fragen funktioniert leider nichts mehr.

Würde mich freuen, wenn jemand weiterhelfen könnte.
Vielen Dank

Code: Select all


Gui, Add, Text,,Frage1:
Gui, Add, Radio, vCheckboxE, gut
Gui, Add, Radio, vCheckboxS, schlecht
Gui, Add, Radio, vCheckboxk, keine Angabe
Gui, Add, Button, Default, OK
Gui, Margin ,150,40
Gui, +AlwaysOnTop
Gui, show, x1000 y150

return

ButtonOK:
Gui, Submit



If (CheckboxE = 1) 
{
Send, ok
Send, {Enter}
}
Else If(CheckboxS = 1)
{
Send, nicht ok
Send, {Enter}
}
Else If(Checkboxk = 1)
{
Send, keine Angabe möglich
Send, {Enter}
}

return

Gui, Add, Text,,Frage 2:
Gui, Add, Radio, vCheckboxUG, Perfekt
Gui, Add, Radio, vCheckboxU, Sehr gut
Gui, Add, Radio, vCheckboxN, nicht gut
Gui, Add, Button, Default, OK
Gui, Margin ,150,40
Gui, +AlwaysOnTop
Gui, show, x1000 y150

return


ButtonOK2:
Gui, Submit



If (CheckboxUG = 1) 
{
Send, Perfekt
Send, {Enter}
}
Else If(CheckboxU = 1)
{
Send, Sehr gut 
Send, {Enter}
}
Else If(CheckboxN = 1)
{
Send, Nicht gut 
Send, {Enter}
}



GuiClose:
ExitApp


Top