วันจันทร์ที่ 4 มกราคม พ.ศ. 2553

Status Bar & Progres Bar,

Status Bar

แถบสถานะได้รับการใช้เป็นที่แสดงสารสนเทศ ให้กับผู้ใช้ การสร้างอินเตอร์เฟซดังกล่าวใน Visual Basic ทำได้สะดวกด้วยการประยุกต์ Status bar

Status bar มี Panels collection ในการเก็บอ๊อบเจค Panel ซึ่งเป็นพื้นที่ของแถบสถานะที่สามารถรักษาสารสนเทศตามรูปแบบ Status bar มีรูปแบบอัตโนมัติหลายรูปแบบ

การตั้งค่าคุณสมบัติเมื่อออกแบบ

แท็บ General ในไดอะล๊อกบ๊อกซ์ ของ Status bar มีคุณสมบัติ ซึ่งตามปกติจะใช้ตามค่าเริ่มต้นที่แท็บ Panels สามารถสร้างอ๊อบเจค Panel ใหม่ด้วยการคลิกปุ่ม Insert Panel แต่ละอ๊อบเจค Panel มีคุณสมบัติที่เกี่ยวกับลักษณะภายนอกและพฤติกรรม ได้แก่คุณสมบัติ Style ซึ่งมีผลต่อการแสดงภายในตัว control ค่าเริ่มต้นคือ 0-sbrText แสดงข้อความในคุณสมบัติ Text และตั้งค่าเป็นค่าอื่น คือ 1-sbrCaps, 2-sbrNum, 3-sbrlns หรือ 4-sbrScrl ส่วนการแสดงเวลาปัจจุบันด้วย 5-sbrTime หรือวันที่ปัจจุบันด้วย 6-sbrDate

การทำงานเมื่อเรียกใช้

การ ทำงานกับ Status bar ในเวลาเรียกใช้ มีความต้องการในการเปลี่ยนคุณสมบัติ Text ซึ่งคุณสมบัติ Style ของอ๊อบเจค Panel ตั้งค่าเป็น 0-sbrText เช่น การแสดงข้อความใน Panel ที่ 3
StatusBar1.Panel(3).Text = "Hello World"

การสร้างและยกเลิกอ๊อบเจค Panel

การสร้างอ๊อบเจค Panel ใช้เมธอด Add ของ Panels collection มีไวยากรณ์

Add ([Index], [Key], [Text], [Style], [Picture]) As Panel

อากิวเมนต์มีความหมายตรงกับคุณสมบัติของอ๊อบเจค Panel

'staStatus As StatusBar
With staStatus.Panels.Add(1, "moon", "Click to start animation", sbrText, imgMoon(0))
.Alignment = sbrCenter
.AutoSize = sbrContents
.Tag = "Animated"
End With

การตอบสนองการทำงานของผู้ใช้

Status bar มี event คู่หนึ่ง คือ PanelClick และ PanelDblClick ซึ่งจะเกิดขึ้นเมื่อผู้ใช้คลิกหรือดับเบิลคลิกบนอ๊อบเจค Panel และ Panel ที่ถูกคลิกจะส่งผ่านเป็นอากิวเมนต์ ของ event

Private Sub staStatus_PanelClick(ByVal Panel As MSComctlLib.Panel)
Select Case Panel.Tag
Case "Editable"
Dim s As String
s = InputBox("Enter a new text for this panel", , Panel.Text)
If Len(s) Then Panel.Text = s
Case "Animated"
Animation = Not Animation
tmrTime.Enabled = Animation
Panel.Text = "Click to " & IIf(Animation, "stop", "start") & " animation"
If Animation Then
cmdAnimate.Caption = "หยุดภาพเคลื่อนไหว"
Else
cmdAnimate.Caption = "แสดงภาพเคลื่อนไหว"
End If
End Select
End Sub

การสร้างไอคอนเคลื่อนไหว

อ๊อบเจค Panel มีคุณสมบัติ Picture ที่ใช้ในการกำหนดค่าระหว่างการออกแบบ และสามารถกำหนดภาพให้กับคุณสมบัติด้วยการใช้คำสั่ง

Private Sub tmrTime_Timer()
Static n As Integer
' แสดงภาพต่อไป
staStatus.Panels("moon").Picture = imgMoon(n).Picture
n = (n + 1) Mod 8
End Sub

การสลับสถานะของล๊อกคีย์

Status bar สามารถแสดงสถานะของคีย์ Caps, Num, Scroll และ Insert และไม่ยินยอมให้สลับเปลี่ยนด้วยการคลิกของเมาส์ แต่ถ้าต้องการเปลี่ยนสามารถใช้ฟังก์ชัน API และคำสั่งใน event procedure ของ Click หรือ DblClick

' การประกาศฟังก์ชัน API
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

Private Sub staStatus_PanelDblClick(ByVal Panel As MSComctlLib.Panel)
Select Case Panel.Style
Case sbrCaps
ToggleKey vbKeyCapital
Case sbrNum
ToggleKey vbKeyNumlock
Case sbrScrl
ToggleKey vbKeyScrollLock
Case sbrIns
ToggleKey vbKeyInsert
End Select
staStatus.Refresh
txtKey.SetFocus
End Sub

Sub ToggleKey(vKey As KeyCodeConstants)
Dim keys(255) As Byte
' อ่านสถานะปัจจุบันของคีย์บอร์ด
GetKeyboardState keys(0)
' เปลี่ยนบิต 0 ของคีย์เสมือน ที่สนใจ
keys(vKey) = keys(vKey) Xor 1
' บังคับสถานะของคีย์บอร์ดใหม่
SetKeyboardState keys(0)
End Sub

ดาวน์โหลดตัวอย่าง (Statusbar.vbp)

Progress Bar

Progress bar เป็นตัว control ที่ใช้รายงานให้ผู้ใช้ทราบเกี่ยวกับสถานะความคืบหน้าของการทำงานและเป็นตัว control ที่ไม่มีอ๊อบเจคที่ขึ้นต่อ event เฉพาะ

การตั้งค่าคุณสมบัติเมื่อออกแบบ

ใน ระหว่างการออกแบบมีค่าคุณสมบัติจำนวนหนึ่งที่ต้องตั้งค่าภายหลังวาง Progress bar บนฟอร์ม โดยทั่วไปจะใช้ค่าเริ่มต้น คุณสมบัติที่สำคัญ คือ Min และ Max สำหรับการหาค่าน้อยที่สุดและมากที่สุด ที่สามารถแสดงโดย Progress bar
คุณสมบัติใหม่ ของ Progress bar ที่เพิ่มขึ้นใน Visual Basic 6 คือคุณสมบัติ Orientation และ Scrolling โดย Orientation ให้สร้างแถบแนวตั้ง ส่วน Scrolling มีตัวเลือกระหว่าง Segmentation bar และ Smoother bar

การทำงานเมื่อเรียกใช้

ในทางปฏิบัติ สามารถใช้คำสั่งในการตั้งค่าคุณสมบัติ Value เป็นตัวเลขภายในช่วง Min กับ Max

ดาวน์โหลดตัวอย่าง (Progressbar.vbp)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น