Not sure if I should keep it in this topic or open a new one, but that would probably cause me to create a lot of new topics
When I use below code, sometimes I press enter accidentally causing the Go button to be pressed which registers a mistake.
How can I prevent this ?
I was think I would need to do something with
EditCtrl.Text, but I'm not sure what ?
edit
Think I solved it (like so:)
/edit
Code: Select all
if EditCtrl.Text := ""
don't count the mistake
Code: Select all
#Requires AutoHotkey v2.0
counter := 1
mytable := 1
mistakes := 0
AHKV2Gui := Gui(, "My First AHKv2 Gui")
Ahkv2Gui.Add("Text",, "Which table do you want to practice ?")
Ahkv2Gui.Add("Text",, "")
AHKv2Gui.Show()
TableButton := []
Loop 10
{
TableButton.Push(AHKV2Gui.Add("Button", "w40 yp", A_Index))
TableButton[A_Index].OnEvent("Click", TableButton1_Click)
}
AddCtrl := Ahkv2Gui.Add("Text", "x10 y+30 hidden", counter . " times " . mytable " is ?")
EditCtrl := Ahkv2Gui.AddEdit("vAnswer center Number w40 yp-5 xp+70 hidden")
AnswerBtn := AHKv2Gui.Add("Button", "default yp hidden" , "Go")
AnswerBtn.OnEvent("Click", ClickAnswer)
AnswerText := AHKV2Gui.Add("Text", "x+3 yp+5 w150 hidden", "correct !")
NoOfMistakes := AHKV2Gui.Add("Text", "y65 x328 h25 w250 hidden", "You made " . mistakes . " mistake")
NoOfMistakes.SetFont("s12 cff008c")
AHKV2Gui.Show("w500 h300")
return
TableButton1_Click(btnObj, *) { ; btnObj is used to get the text from the pressed button
global mytable := btnObj.Text
Loop 10
{
TableButton[A_Index].Enabled := false ; disable all buttons until finished
}
counter := 1
AddCtrl.Text := counter " times " mytable " is: "
AddCtrl.Visible := 1
EditCtrl.Visible := 1
EditCtrl.Focus
AnswerBtn.Visible := 1
return
}
ClickAnswer(*) {
global mistakes
Saved := AHKV2Gui.Submit(0)
if Saved.Answer = counter * mytable ; means the answer is correct
{
global counter
if (counter = 10)
{
ResetGui()
return
}
++counter ; used to be counter++ in V1
AddCtrl.Text := counter " times " mytable " is: "
EditCtrl.Text := ""
EditCtrl.Focus
AnswerText.Text := "correct"
AnswerText.SetFont("cGreen")
AnswerText.visible := 1
AnswerBtn.Enabled := false
Sleep 750
AnswerBtn.Enabled := true
EditCtrl.Focus
AnswerText.visible := 0
}
else
{
++mistakes
NoOfMistakes.Visible := 1
if (Mistakes = 1)
NoOfMistakes.Text := "You made " . mistakes . " mistake"
else
NoOfMistakes.Text := "You made " . mistakes . " mistake(s)"
AnswerText.Text := "Your answer is incorrect"
AnswerText.SetFont("cRed")
AnswerText.visible := 1
AnswerBtn.Enabled := false
Sleep 750
AnswerText.visible := 0
AnswerBtn.Enabled := true
EditCtrl.Text := ""
EditCtrl.Focus
AnswerText.visible := 0
}
return
}
ResetGui(*)
{
Loop 10
TableButton[A_Index].Enabled := true ; enable all buttons
global counter := 1
global mytable := 1
global mistakes := 0
AnswerBtn.Visible := 0
AddCtrl.visible := 0
AnswerText.visible := 0
EditCtrl.visible := 0
EditCtrl.Text := ""
return
}