史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   VB6.0一個簡單轉換的問題 (http://forum.slime.com.tw/thread251596.html)

chung1206 2009-08-15 04:33 PM

VB6.0一個簡單轉換的問題
 
各位大大們好,想請教一下如何能做到如下圖般,每按一次轉換,四個號碼會順時鐘轉換,謝謝。
http://farm3.static.flickr.com/2468/...eeae3fd551.jpg

mini 2009-08-16 03:59 PM

大概有兩種思維
.數學算式

語法:

Private Sub Command1_Click()
Dim x As Integer

For i = 3 To 0 Step -1
    x = CInt(Text1(i).Text)
    x = x - 1
    If x < 1 Then x = 4
    Text1(i) = x
Next

End Sub

.移動控制項
這裡多用了個 Shape1控制項,其 Shape1.Left 與 Shape1.Top 一開始與 12點鐘位置的
TextBox相同 (這裡就是 Text1(0))
語法:

Private Sub Command2_Click()

For i = 0 To 2
    Text1(i).Move Text1(i + 1).Left, Text1(i + 1).Top
Next
Text1(i).Move Shape1.Left, Shape1.Top
Shape1.Move Text1(0).Left, Text1(0).Top

End Sub

不過你也可以用變數 X,Y來替代 Shape1.Left, Shape1.Top
不過如此一來
Shape1.Move Text1(0).Left, Text1(0).Top
就要改成兩行
X = Text1(0).Left
Y = Text1(0).Top
且在For之前也需定位 X,Y的初始值
程式碼的行數也跟著增加了

chung1206 2009-08-17 01:47 PM

感謝版大,不過這個是我從一本基礎書後面的練習題看的,且這章節他只提到基本物件的使用,只講Private Sub Command1_Click()及Private Sub Text1_Change()這二種觸發程序,隨後就出了一題我詢問的題目,所以我在想是否有更簡單的方法可以做到那樣的結果?謝謝。

mini 2009-08-17 03:23 PM

引用:

作者: chung1206 (文章 2183772)
感謝版大,不過這個是我從一本基礎書後面的練習題看的,且這章節他只提到基本物件的使用,只講Private Sub Command1_Click()及Private Sub Text1_Change()這二種觸發程序,隨後就出了一題我詢問的題目,所以我在想是否有更簡單的方法可以做到那樣的結果?謝謝。

語法:

Private Sub Command1_Click()

    For i = 0 To 3
        Text1(i).Text = CInt(Text1(i).Text) - 1
    Next
End Sub

Private Sub Text1_Change(Index As Integer)

    If CInt(Text1(Index).Text) < 1 Then Text1(Index).Text = 4
End Sub

覺得這種如果你的Text1沒有再擴充應用的話
可以這樣寫
但如果還有其他擴充應用的話
這樣寫容易使維修不利

個人會比較推薦之前的 數學算式 方式
把他做成一個集中的程式段會比較好

不過說來這是一道題目
本身就有動腦及事件觸發的思維在
所以如何把兩個事件牽連而創作
相信是這個題目的本意所在

chung1206 2009-08-18 11:49 AM

感謝版大,Text沒有要在做延伸功能,因為此題在本書的第二章而已,第一章也只說些概念,以我個人的認知來說,通常練習題應該不會偏離該章節所教的內容才是,謝謝。


所有時間均為台北時間。現在的時間是 12:43 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1