• 沒有找到結果。

功能說明:自動開啟該資料夾內的 JPG 圖檔,每隔五秒鐘(可自行設定) 自動切換到下一張的圖片,或是在圖片上方按下滑鼠『左鍵』立刻切

在文檔中 陳致中老師VB6電子書 (頁 165-169)

6-1 Show 圖程式

現在數位相機的使用非常地普遍,動輒數百張的照片,若想一次全部快速 瀏覽,並不是一件容易的事,我們可以自行利用 Visual Basic 撰寫程式,將該 執行檔 (僅 36KB 的大小) 複製到數位相片的資料夾內即可自動播放。

功能說明:自動開啟該資料夾內的 JPG 圖檔,每隔五秒鐘(可自行設定)

自動切換到下一張的圖片,或是在圖片上方按下滑鼠『左鍵』立刻切 換下一張圖片,若按下滑鼠『右鍵』則立刻切換前一張圖片,同時可 以顯示檔案名稱。當我們調整表單大小,相片大小亦可同步隨之自動 調整。

執行畫面如下:

使用物件的屬性說明如下:

(註:請特別注意底下 FileListBox 物件須設為 隱藏,而 Image1 物件須自行手動調整和表單相同的大小)

6

物件種類 物件名稱 屬 性 設定值

Icon 自行連結設定圖示

Form Form1

StartUpPosition 2 - 螢幕中央 Pattern *.JPG FileListBox File1

Visible False (設為隱藏)

Image Image1 Stretch True (自動調整圖片大小) AutoSize True (自動調整大小) BackStyle 0 - 透明

Font 設定字型大小

Label Label1

ForeColor 設定字型顏色

Timer Timer1 Interval 5000 (可自行調整切換速度)

程式碼說明如下:

1. Private Sub Form_Load() 2. File1.Path = App.Path 3. File1.ListIndex = 0

4. Form1.Caption = "共 " & File1.ListCount & " 張圖片,現在播放第

" & File1.ListIndex + 1 & " 張圖片。相片每五秒鐘自動換張,亦可按 滑鼠左右鍵切換!"

5. Label1.Caption = UCase(File1.FileName) ' 轉換大寫輸出

6. Image1.Picture = LoadPicture(App.Path & "\" & File1.FileName) 7. End Sub

8. Private Sub Form_Resize()

9. Image1.Width = Form1.Width ' 設定寬度 10. Image1.Height = Form1.Height ' 設定高度 11. End Sub

12. Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

13. On Error Resume Next

14. If Button = 1 Then File1.ListIndex = File1.ListIndex + 1 ' 滑鼠左鍵,則到下一張

15. If Button = 2 Then File1.ListIndex = File1.ListIndex – 1 ' 滑鼠右鍵,則到前一張

6

16. Image1.Picture = LoadPicture(App.Path & "\" & File1.FileName) 17. Form1.Caption = "共 " & File1.ListCount & " 張圖片,現在播放第

" & File1.ListIndex + 1 & " 張圖片。相片每五秒鐘自動換張,亦可按 滑鼠左右鍵切換! "

18. Label1.Caption = UCase(File1.FileName) ' 轉換大寫輸出 19. End Sub

20. Private Sub Timer1_Timer()

21. If File1.ListIndex = File1.ListCount - 1 Then File1.ListIndex

= 0 Else File1.ListIndex = File1.ListIndex + 1

22. Image1.Picture = LoadPicture(App.Path & "\" & File1.FileName) 23. Form1.Caption = "共 " & File1.ListCount & " 張圖片,現在播放第

" & File1.ListIndex + 1 & " 張圖片。相片每五秒鐘自動換張,亦可按 滑鼠左右鍵切換! "

24. Label1.Caption = UCase(File1.FileName) 25. End Sub

6

20-25 行副程式為 Timer1 每隔五秒所引發的事件處理程序,細節說明如下:

第 21 行:若已至最後一張圖片(File1.ListIndex = File1.ListCount - 1),則重新將 File1 的 ListIndex 指標移到第一個,否則指到下一張圖片(將 ListIndex

指標加一)。

第 22 行:利用 LoadPicture 函數,載入目前 File1 所指示的相片檔案。

第 23 行: 將相片相關資訊(包括資料夾相片數量與目前相片編號)顯示於表 單的標題。

第 24 行:利用 Label1 顯示檔案名稱,並自動轉換大寫英文格式。

請參閱光碟 EX6-1 資料夾內容,練習『Show 圖程式』的設計。

註: 我們可以配合加入 DriveListBox 與 DirListBox 物件,以增加程式使用上的彈性(原本 僅可查看相同資料夾內的圖片),或是配合加入 HScroll 或 VScroll 物件,以修改切 換圖片的速度,最後務必要將編譯後的執行檔複製到和照片相同的資料夾,才可以 正常使用該程式,或許你可以再增加新的功能或物件,好好發揮自己的創意吧!

在文檔中 陳致中老師VB6電子書 (頁 165-169)