Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Probleme mit Button - Abfrage



  • Please log in to reply
4 replies to this topic
fhari
  • Members
  • 10 posts
  • Last active: Jun 28 2017 04:36 AM
  • Joined: 02 Apr 2013

Hallo zusammen

Ich möchte ein kleines Programm erstellen. Hier der Quelltext:

;---------------------------------------------

Loop, 10
{
++z

;Lösung Zeile für Zeile laden
FileReadLine,Loesung,%A_WorkingDir%\Loesung.txt,%z%

; Eingabe in 4 Buttons mit den Fällen (gibt mir total Probleme!!!!)
gosub, Eingabe

;Auswertung ist Wert = Loesung  - wenn nein ++f (Krieg ich hin)
gosub, Auswertung
}
;Ende?
Exit

Eingabe:
Gui, Add, Text, , Welcher Fall ist Nummer %z%?        (Fehler:%f%)
Gui, Add, Button, x5 y+5 gvar w100    ,Wer
Gui, Add, Button, x+5 gvar w100       ,Wes
Gui, Add, Button, x+5 gvar w100       ,Wem
Gui, Add, Button, x+5 gvar w100       ,Wen

Gui, Show
gosub, var
return

var:
Wert:= % A_GuiControl
Gui, Destroy
return
;------------------------------------------------------------------

 

Mit der Abfrage der 4 Buttons hab ich aber total Probleme. Wer hilft mir. Den Rest schaffe ich selbst.

LG Fred Hari



gregster
  • Members
  • 283 posts
  • Last active: Nov 09 2015 03:08 AM
  • Joined: 19 Mar 2009

Spontan fält auf, dass 'gosub, var' keinen Sinn macht. Denn das Label 'var' soll ja nur aufgerufen werden, wenn ein Button gedrückt wurde - und dafür sorgen die 'gvar's in den Buttondefinitionen bereits. Insbesondere soll das  Label nicht aufgerufen werden, bevor der User überhaupt etwas drücken kann (im Label 'var' zerstörst du schließlich das GUI). Also eher so:

Gui, Add, Text, , Welcher Fall ist Nummer %z%?        (Fehler:%f%)
Gui, Add, Button, x5 y+5 gvar w100    ,Wer
Gui, Add, Button, x+5 gvar w100       ,Wes
Gui, Add, Button, x+5 gvar w100       ,Wem
Gui, Add, Button, x+5 gvar w100       ,Wen

Gui, Show
				; gosub, var
return

var:
Wert:= A_GuiControl			; oder dein % A_GuiControl, aber % ist hier eigentlich unnötig
msgbox % wert
Gui, Destroy
return


fhari
  • Members
  • 10 posts
  • Last active: Jun 28 2017 04:36 AM
  • Joined: 02 Apr 2013

Danke Gregster für die Hilfe. Jetzt bin ich einen Schritt weiter. Der Wert der ersten Eingabe wird jetzt perfekt angezeigt (msgbox % wert). Leider geht es aber nicht weiter, d.h. Zeile 2 (3,4...)  wird nicht angezeigt, obwohl der grüne H in der Taskleiste bestehen bleibt (Warum?), d.h. es passiert nichts mehr. (Hinweis: Auswertung noch nicht implementiert). Wo bleibt das Programm stehen? (FileReadLine getestet, klappt!)



gregster
  • Members
  • 283 posts
  • Last active: Nov 09 2015 03:08 AM
  • Joined: 19 Mar 2009

Ach so, die Schleife hatte ich mir nicht angesehen, mangels Datei. Aber ein Problem ist, dass die GUI nicht modal ist (im Gegensatz zu einer msgbox), d.h. die Schleife wird durch den Aufruf der GUI für  z=1 nicht gestoppt, sondern läuft noch, während die erste GUI angezeigt wird, komplett durch. Deswegen würde ich etwas umstellen, sodass z erst hochgezählt wird (und die nächste Zeile ausgelesen wird), sobald ein Fall abgearbeitet ist. Etwa so:

++z               ; oder z:=1

schleife:          

;Lösung Zeile für Zeile laden
FileReadLine,Loesung,%A_WorkingDir%\Loesung.txt,%z%

; Eingabe in 4 Buttons mit den Fällen (gibt mir total Probleme!!!!)
Gui, Add, Text, , Welcher Fall ist Nummer %z%?        (Fehler:%f%)
Gui, Add, Button, x5 y+5 gvar w100    ,Wer
Gui, Add, Button, x+5 gvar w100       ,Wes
Gui, Add, Button, x+5 gvar w100       ,Wem
Gui, Add, Button, x+5 gvar w100       ,Wen
Gui, Show
return


var:
Wert:= A_GuiControl			; oder dein % A_GuiControl, aber % ist hier eigentlich unnötig
msgbox %wert%  - Hier gosub, Auswertung? 
Gui, Destroy
if (z < 10) 
	++z
else
	ExitApp
gosub schleife
return


fhari
  • Members
  • 10 posts
  • Last active: Jun 28 2017 04:36 AM
  • Joined: 02 Apr 2013
✓  Best Answer

Ja jetzt läuft's einwandfrei. Herzlichen Dank und liebe Grüsse. Fred Hari