ฟอรั่มของบล็อก http://pssix.blogspot.com


ทำโปรแกรมจับเวลา แต่ไม่รู้จะทำยังไงให้เวลาหยุดเมื่อกด หยุด

Share
avatar
max30012540
PSsix Member High Class
PSsix Member High Class

PSsix Program Coder
จำนวนข้อความ : 98
ความนิยม : 10
เข้าร่วมเมื่อ : 10/10/2011
อายุ : 19

ทำโปรแกรมจับเวลา แต่ไม่รู้จะทำยังไงให้เวลาหยุดเมื่อกด หยุด

ตั้งหัวข้อ by max30012540 on 12/11/11, 09:32 pm

งง มากครับ em246

Code:
#include <GUIConstants.au3>
#include <EditConstants.au3>
$Form1 = GUICreate("โปรแกรมจับเวลา", 242, 74, 518, 229)
$Button1 = GUICtrlCreateButton("จับเวลา", 160, 8, 73, 25, 0)
$Input2 = GUICtrlCreateInput("0", 8, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("0", 88, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("หยุดจับเวลา", 160, 40, 73, 25, 0)
$Label1 = GUICtrlCreateLabel(": ", 72, 16, 16, 36)
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button1
         While 1
            If $nMsg = $Button2 Then
               ExitLoop
            EndIf
            Sleep(999)
            GUICtrlSetData($Input3,Execute(GUICtrlRead($Input3))+1)
            if GUICtrlRead($Input3) = 60 Then
               GUICtrlSetData($Input2,Execute(GUICtrlRead($Input2))+1)
               GUICtrlSetData($Input3,1)
            EndIf
            if GUICtrlRead($Input2) = 60 Then
               MsgBox(0,"","โปรแกรมจับเวลาได้สูงสุดที่ 60 นาที หลังจากกด OK แล้วโปรแกรมจะหยุดจับเวลา")
               ExitLoop
            EndIf
         WEnd
         EndSwitch
WEnd
avatar
POS
PSsix
PSsix


จำนวนข้อความ : 1151
ความนิยม : 323
เข้าร่วมเมื่อ : 19/07/2010

Re: ทำโปรแกรมจับเวลา แต่ไม่รู้จะทำยังไงให้เวลาหยุดเมื่อกด หยุด

ตั้งหัวข้อ by POS on 13/11/11, 06:59 am

สคริปต์นี้มีปัญหาตั้งแต่การออกแบบอยู่แล้ว การหน่วงเวลามากไปทำให้รับคำสั่งจากปุ่มกดไม่ได้ แก้ไขไปแล้วเวลาจะหยุดก็ต้องคลิกหลายๆ ครั้งจึงจะหยุด ถ้าจะเขียนสคริปต์เกี่ยวกับเวลาต้องศึกษาคำสั่ง TimerInit และ TimerDiff

ตัวอย่างการแก้ไขจากของเดิม (ต้องคลิกหลายๆ ครั้งถึงจะหยุด)

Code:
#include <GUIConstants.au3>
#include <EditConstants.au3>
$Form1 = GUICreate("โปรแกรมจับเวลา", 242, 74, 518, 229)
$Button1 = GUICtrlCreateButton("จับเวลา", 160, 8, 73, 25, 0)
$Input2 = GUICtrlCreateInput("0", 8, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("0", 88, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("หยุดจับเวลา", 160, 40, 73, 25, 0)
$Label1 = GUICtrlCreateLabel(": ", 72, 16, 16, 36)
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button1
         While 1
            If  GUIGetMsg()= $Button2 Then;;เปลี่ยน
               ExitLoop
            EndIf
            Sleep(999)
            GUICtrlSetData($Input3,Execute(GUICtrlRead($Input3))+1)
            if GUICtrlRead($Input3) = 60 Then
               GUICtrlSetData($Input2,Execute(GUICtrlRead($Input2))+1)
               GUICtrlSetData($Input3,1)
            EndIf
            if GUICtrlRead($Input2) = 60 Then
               MsgBox(0,"","โปรแกรมจับเวลาได้สูงสุดที่ 60 นาที หลังจากกด OK แล้วโปรแกรมจะหยุดจับเวลา")
               ExitLoop
            EndIf
         WEnd
         EndSwitch
WEnd


||----------------------------------------------------------------------------------------------------------------||

กลุ่ม AutoIt ในเฟสบุ๊ค
[You must be registered and logged in to see this link.]

++++++++++++++++++++++++++++++++++++++++++++
pssix.blogspot.com

Fast
PSsix Member Super Class III
PSsix Member Super Class III

PSsix Program Coder
จำนวนข้อความ : 217
ความนิยม : 52
เข้าร่วมเมื่อ : 19/06/2011

Re: ทำโปรแกรมจับเวลา แต่ไม่รู้จะทำยังไงให้เวลาหยุดเมื่อกด หยุด

ตั้งหัวข้อ by Fast on 14/11/11, 04:26 pm

แก้ไขแบบนี้เลยครับ em218



#include
#include
$Form1 = GUICreate("โปรแกรมจับเวลา", 242, 74, 518, 229)
$Button1 = GUICtrlCreateButton("จับเวลา", 160, 8, 73, 25, 0)
$Input2 = GUICtrlCreateInput("0", 8, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("0", 88, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("หยุดจับเวลา", 160, 40, 73, 25, 0)
$Label1 = GUICtrlCreateLabel(": ", 72, 16, 16, 36)
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$t =TimerInit()
While 1
if TimerDiff($t) >1000 then
GUICtrlSetData($Input3,Execute(GUICtrlRead($Input3))+1)
$t =TimerInit()
EndIf
If GUIGetMsg()= $Button2 Then ExitLoop
If GUIGetMsg()= $GUI_EVENT_CLOSE Then Exit
Sleep(10)
WEnd
EndSwitch
WEnd
avatar
max30012540
PSsix Member High Class
PSsix Member High Class

PSsix Program Coder
จำนวนข้อความ : 98
ความนิยม : 10
เข้าร่วมเมื่อ : 10/10/2011
อายุ : 19

Re: ทำโปรแกรมจับเวลา แต่ไม่รู้จะทำยังไงให้เวลาหยุดเมื่อกด หยุด

ตั้งหัวข้อ by max30012540 on 14/11/11, 05:10 pm

Fast พิมพ์ว่า:แก้ไขแบบนี้เลยครับ em218



#include
#include
$Form1 = GUICreate("โปรแกรมจับเวลา", 242, 74, 518, 229)
$Button1 = GUICtrlCreateButton("จับเวลา", 160, 8, 73, 25, 0)
$Input2 = GUICtrlCreateInput("0", 8, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Input3 = GUICtrlCreateInput("0", 88, 16, 57, 40,BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("หยุดจับเวลา", 160, 40, 73, 25, 0)
$Label1 = GUICtrlCreateLabel(": ", 72, 16, 16, 36)
GUICtrlSetFont(-1, 22, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$t =TimerInit()
While 1
if TimerDiff($t) >1000 then
GUICtrlSetData($Input3,Execute(GUICtrlRead($Input3))+1)
$t =TimerInit()
EndIf
If GUIGetMsg()= $Button2 Then ExitLoop
If GUIGetMsg()= $GUI_EVENT_CLOSE Then Exit
Sleep(10)
WEnd
EndSwitch
WEnd

ใช้ได้แล้วครับ ขอบคุณ คุณ Fast มากๆครับ
avatar
Pochi
PSsix Member Class III
PSsix Member Class III


จำนวนข้อความ : 66
ความนิยม : 1
เข้าร่วมเมื่อ : 22/10/2010

Re: ทำโปรแกรมจับเวลา แต่ไม่รู้จะทำยังไงให้เวลาหยุดเมื่อกด หยุด

ตั้งหัวข้อ by Pochi on 13/08/12, 03:35 pm

ขอบคุณครับสำหรับข้อมูล em230

    เวลาขณะนี้ 28/03/17, 11:15 am