回顧:  HKML網上比賽  HKML版聚  


 
標題: 小弟有d電腦問題想請教咁多位師兄
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 08:20 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 08:02 PM 發表

即是成個assignment/vb project最關鍵的地方, 係點樣運用個timer object, 去完成你要做的事情

我又好好奇想問, 你果個vb project係你的tutor create出黎send俾你地, 要求你地填返些vb programming logic落 ...

唔係,仲要將程式燒落隻碟





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 08:23 PM  資料  短消息  加為好友 
我點解咁問, 我見你一開始就完全忽略左個timer object的存在

這樣吧, 你在tmrPic_Click 填寫些logic, 再post上黎, 我再話你知差些什麼~~





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:01 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 08:23 PM 發表
我點解咁問, 我見你一開始就完全忽略左個timer object的存在

這樣吧, 你在tmrPic_Click 填寫些logic, 再post上黎, 我再話你知差些什麼~~

Public Class HW2PartB

    Private Sub RadioButtons_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles raiOne.CheckedChanged, raiTwo.CheckedChanged, raiThree.CheckedChanged, raiFour.CheckedChanged
        If rai0.5.Checked = True Then
            tmrPic.Interval = 500
        End If
        If rai1.Checked = True Then
            tmrPic.Interval = 1000
        End If
        If rai1.5.Checked = True Then
            tmrPic.Interval = 1500
        End If
        If rai2.Checked = True Then
            tmrPic.Interval = 2000
        End If
    End Sub
    Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click
        tmrPic.Enabled = True
    End Sub

    Private Sub tmrPic_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrPic.Tick
        Dim i As Integer = 1
        picMoon.Image = Image.FromFile("1.BMP")
        i += 1
        picMoon.Image = Image.FromFile("2.BMP")
        i += 1
        picMoon.Image = Image.FromFile("3.BMP")
        i += 1
        picMoon.Image = Image.FromFile("4.BMP")
        i += 1
        picMoon.Image = Image.FromFile("5.BMP")
        i += 1
        picMoon.Image = Image.FromFile("6.BMP")
        i += 1
        picMoon.Image = Image.FromFile("7.BMP")
        i += 1
        picMoon.Image = Image.FromFile("8.BMP")
    End Sub
End Class


我真係對Timer object唔係好明
小弟上網係咁睇Timer個Part,書又係咁睇Timer個Part,連例子睇埋都唔係好明

[ 本帖最後由 MSZ-010 於 2009-11-28 09:04 PM 編輯 ]





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:10 PM  資料  短消息  加為好友 
唔緊要, 其實都差唔多喇~~

首先要將 Dim i As Integer = 1 呢句搬去 Public Class HW2PartB 下面, 即是要將 i 這個variable, 由local variable 變成global variable, 即是這般寫:-

Public Class HW2PartB
   Dim i As Integer

    Private Sub RadioButtons_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles raiOne.CheckedChanged, raiTwo.CheckedChanged, raiThree.CheckedChanged, raiFour.CheckedChanged
......

其次將 i = 1這assignment, 放在run button的click event內, 原因是要每次在click Run button時, 將 i 的value reset做 1, 即是這般寫:-
    Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click
        i = 1
        tmrPic.Enabled = True
    End Sub

RadioButtons_CheckedChanged果段logic正確, 不過順道要留意, 一開始你見到係"冇一個" option selected左的, selected左的option係有一圓黑點的, 如果冇一個 option selected左,個timer interval我估係by default = 1000的(對嗎??)

剩落黎就係要處理timer event的logic ......





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:17 PM  資料  短消息  加為好友 
剩落黎就係要處理timer event的logic, 基本上只需要行這兩句

picMoon.Image = Image.FromFile( 圖案名稱 )
i += 1

問題係圖案名稱係下一個要讀的圖案名稱, 例如上一次讀的是2.bmp, 今次就要讀3.bmp, 所以我會咁寫:-

if i = 1 then
    picMoon.Image = Image.FromFile("1.bmp")
elseif i = 2 then
    picMoon.Image = Image.FromFile("2.bmp")
elseif i = 3 then
    picMoon.Image = Image.FromFile("3.bmp")
elseif i = 4 then
    picMoon.Image = Image.FromFile("4.bmp")
elseif i = 5 then
    picMoon.Image = Image.FromFile("5.bmp")
elseif i = 6 then
    picMoon.Image = Image.FromFile("6.bmp")
elseif i = 7 then
    picMoon.Image = Image.FromFile("7.bmp")
elseif i = 8 then
    picMoon.Image = Image.FromFile("8.bmp")
    timPic.Enabled = False
end if

i += 1

你試試將呢段logic, replace你上面寫在tmrPic_Tick內的logic





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:20 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:10 PM 發表
唔緊要, 其實都差唔多喇~~

首先要將 Dim i As Integer = 1 呢句搬去 Public Class HW2PartB 下面, 即是要將 i 這個variable, 由local variable 變成global variable, 即是這般寫:-

Public Class HW2PartB
   Dim i As Integer

    Private Sub RadioButtons_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles raiOne.CheckedChanged, raiTwo.CheckedChanged, raiThree.CheckedChanged, raiFour.CheckedChanged
......

其次將 i = 1這assignment, 放在run button的click event內, 原因是要每次在click Run button時, 將 i 的value reset做 1, 即是這般寫:-
    Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click
        i = 1
        tmrPic.Enabled = True
    End Sub

RadioButtons_CheckedChanged果段logic正確, 不過順道要留意, 一開始你見到係"冇一個" option selected左的, selected左的option係有一圓黑點的, 如果冇一個 option selected左,個timer interval我估係by default = 1000的(對嗎??)

剩落黎就係要處理timer event的logic ......

e個係唔係指本身個Timer interva個設定,如果係既其實係100,唔係1000
其實唔SET1000咁會唔會有影響





俺がガンダムだ!
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:26 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:17 PM 發表
剩落黎就係要處理timer event的logic, 基本上只需要行這兩句

picMoon.Image = Image.FromFile( 圖案名稱 )
i += 1

問題係圖案名稱係下一個要讀的圖案名稱, 例如上一次讀的是2.bmp, 今次就要讀3.bmp, 所以 ...

唔該晒師兄,得在
但我仲有D問題
點解可以真接用IF去Return,而唔係要用Do..Loop或者For...Next Loop去Return

[ 本帖最後由 MSZ-010 於 2009-11-28 09:29 PM 編輯 ]





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:30 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 10:32 PM 發表

e個係唔係指本身個Timer interva個設定,如果係既其實係100,唔係1000
其實唔SET1000咁會唔會有影響

唔好唔記得你得四個choice, 分別係0.5s(500), 1s (1000), 1.5s(1500) 同2s (2000), 所以你要想法令user只可在這四個選擇選一個

其實可在Run button的click event先做一個verification, 如果 Detect到四個option都冇一個被選出來, 就prompt句message話俾user知, 不過咁樣比較麻煩(要寫多幾行code), 簡單地, 我就會強制性地set一個default option, 做法有兩種, 一係在design mode的properties set某一個option做default option,例如將0.5s果個option的value set做true

另一方法係在Form_Load event, 寫一句code強制set一個default option, 例如這樣:-
rai0.5.Value = True





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:35 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:30 PM 發表

唔好唔記得你得四個choice, 分別係0.5s(500), 1s (1000), 1.5s(1500) 同2s (2000), 所以你要想法令user只可在這四個選擇選一個

其實可在Run button的click event先做一個verification, 如果 Detect到四個option都冇一個被選出來, 就prompt句message話俾user知, 不過咁樣比較麻煩(要寫多幾行code), 簡單地, 我就會強制性地set一個default option, 做法有兩種, 一係在design mode的properties set某一個option做default option,例如將0.5s果個option的value set做true

另一方法係在Form_Load event, 寫一句code強制set一個default option, 例如這樣:-
rai0.5.Value = True

e個我Debug過,係冇影響
佢依然係0.5s(500), 1s (1000), 1.5s(1500) 同2s (2000)只可以選擇一個





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:37 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 10:38 PM 發表

唔該晒師兄,得在
但我仲有D問題
點解可以真接用IF去Return,而唔係要用Do..Loop或者For...Next Loop去Return

應該點解釋?..... 因為用左Timer object, 就唔駛用或者Do..Loop或者For...Next Loop, 其實詳情在你交左功課後, 可以問返你的Tutor, 我唸好難在此用三言兩語解話

另外#25我寫的logic, 其實可簡化成這樣的:-

if i >= 1 and i<=8 then
    picMoon.Image = Image.FromFile(CType(i, String) & ".bmp")

    if i < 8 then
       i +=1
    else
       timPic.Enable = False
    end if
end if

如此寫比較簡潔, 因為如果有成佰幾或仟幾張圖, 冇可能寫咁多行 if ... then elseif ... then, 不過#25的code比較似初學寫program的人寫的code, 上面用到的CType function係用黎做Casting, 你Tutor見到又會問餐死要你解話的~~





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:38 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:30 PM 發表

唔好唔記得你得四個choice, 分別係0.5s(500), 1s (1000), 1.5s(1500) 同2s (2000), 所以你要想法令user只可在這四個選擇選一個

其實可在Run button的click event先做一個verification, 如果 Detect到四個option都冇一個被選出來, 就prompt句message話俾user知, 不過咁樣比較麻煩(要寫多幾行code), 簡單地, 我就會強制性地set一個default option, 做法有兩種, 一係在design mode的properties set某一個option做default option,例如將0.5s果個option的value set做true

另一方法係在Form_Load event, 寫一句code強制set一個default option, 例如這樣:-
rai0.5.Value = True

其實如果真係要寫去運行e一段,係唔係要用message Box





俺がガンダムだ!
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:42 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:37 PM 發表

應該點解釋?..... 因為用左Timer object, 就唔駛用或者Do..Loop或者For...Next Loop, 其實詳情在你交左功課後, 可以問返你的Tutor, 我唸好難在此用三言兩語解話

另外#25我寫的logic, 其實可簡化成這樣的:-

if i >= 1 and i<=8 then
    picMoon.Image = Image.FromFile(CType(i, String) & ".bmp")

    if i < 8 then
       i +=1
    else
       timPic.Enable = False
    end if
end if

如此寫比較簡潔, 因為如果有成佰幾或仟幾張圖, 冇可能寫咁多行 if ... then elseif ... then, 不過#25的code比較似初學寫program的人寫的code, 上面用到的CType function係用黎做Casting, 你Tutor見到又會問餐死要你解話的~~

真係唔該晒師兄,我會問番Tutor點解

師兄,你講中,我真係初學寫program的人,只係學在兩個多月





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:42 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 10:47 PM 發表

e個我Debug過,係冇影響
佢依然係0.5s(500), 1s (1000), 1.5s(1500) 同2s (2000)只可以選擇一個

其實唔係的, 表面上張Form只容許你選四個其中一個option, 不過既然你都留意到Timer interval的default value係100, 即是你一開始(係冇一個option selected左的)你直接click Run button, 我唸個timer係以十份一秒執行, 當然個程式係一樣行到的, 我家下冇Visual studio在手, 這只是以我經驗判斷, 我建議在Form_Load event寫上強制的rai0.5.Value = True比較妥當, 當然user在click Run button前, 仍然可以改option的





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:42 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 10:50 PM 發表

其實如果真係要寫去運行e一段,係唔係要用message Box

是要的~~





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:43 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 10:54 PM 發表

真係唔該晒師兄,我會問番Tutor點解

師兄,你講中,我真係初學寫program的人,只係學在兩個多月

u're welcome~~





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:50 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:42 PM 發表

其實唔係的, 表面上張Form只容許你選四個其中一個option, 不過既然你都留意到Timer interval的default value係100, 即是你一開始(係冇一個option selected左的)你直接click Run button, 我唸個timer係以十份一秒執行, 當然個程式係一樣行到的, 我家下冇Visual studio在手, 這只是以我經驗判斷, 我建議在Form_Load event寫上強制的rai0.5.Value = True比較妥當, 當然user在click Run button前, 仍然可以改option的

其實Debug畫面已經自動Select最頭個選項
e度佢就係Select 0.5s
題外話:我想問師兄學既係Visual Basic咩版本





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 09:55 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 11:02 PM 發表

其實Debug畫面已經自動Select最頭個選項
e度佢就係Select 0.5s
題外話:我想問師兄學既係Visual Basic咩版本

可能係我冇用過Visual studio 2008

我唔係學的, 係做野用緊VS2003版本

讀書果陣係寫VB6~~





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 09:58 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 09:55 PM 發表

可能係我冇用過Visual studio 2008

我唔係學的, 係做野用緊VS2003版本

讀書果陣係寫VB6~~

可能係VB2008本身自動設定哇=o=
師兄,以前既VB係唔會自動設定選項嗎





俺がガンダムだ!
頂部
松尾明
少將
Rank: 5Rank: 5
吹水老手+模型學徒


UID 18852
精華 3
積分 46
帖子 12083
成品數目 46 件
閱讀權限 10
註冊 2007-7-20
來自 模型烏托邦
狀態 離線
發表於 2009-11-28 10:03 PM  資料  短消息  加為好友 


QUOTE:
原帖由 MSZ-010 於 2009-11-28 11:10 PM 發表

可能係VB2008本身自動設定哇=o=
師兄,以前既VB係唔會自動設定選項嗎

好似唔會... 不過我多數會在design mode set定default value





賞花歸去馬如飛
            去馬如飛酒力微
                            酒力微醒時已暮
                                        醒時已暮賞花歸
頂部
MSZ-010
上尉
Rank: 3Rank: 3


UID 18850
精華 0
積分 0
帖子 1613
成品數目 0 件
閱讀權限 10
註冊 2007-7-20
來自 CB
狀態 離線
發表於 2009-11-28 10:16 PM  資料  短消息  加為好友 


QUOTE:
原帖由 松尾明 於 2009-11-28 10:03 PM 發表

好似唔會... 不過我多數會在design mode set定default value

哦,咁2008都幾方便
但我覺得越方便就越麻煩





俺がガンダムだ!
頂部
 




當前時區 GMT+8, 現在時間是 2026-6-21 07:12 AM
重要聲明:本討論區是以即時上載留言的方式運作,香港模型聯盟對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應完全信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。香港模型聯盟有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc. Skin By D-XITE.COM™
清除 Cookies - 聯繫我們 - 香港模型聯盟 - Archiver