Dùng ListBox làm Queue

Một phần của tài liệu Kỹ thuật lập trình VB6 (Trang 73 - 75)

Khi đi coi hát, ta thường phải đứng sắp hàng để mua vé. Cái hàng đó gọi là Queue. Mục đích của việc dùng Queue là để cho số người đông cần một dịch vụ sẽ được phục vụ lần lượt theo thứ tự ai đến trước sẽ được giải quyết trước. Nguyên tắc của Queue như thế được gọi là First-In-First-Out ( vào trước nhất, ra trước nhất). Ngược lại, nếu ai cũng muốn được phục vụ trước nhất ta sẽ có sự náo loạn, và rốt cuộc có thể chẳng có ai được giải quyết.

Thí dụ ta có một Form tên frmServer, mà trong đó có một Listbox tên List1. Nếu có nhiều Forms khác trong cùng một chương trình muốn nhờ frmServer phục vụ một chuyện gì, chúng sẽ Queue bằng cách Add một Item vào cuối List1. Trong Item có chứa những chi tiết mà frmServer sẽ cần biết để phục vụ.

PrivateSub CmdAddToQueue_Click() Dim myRequest AsString

Dim PersonId AsString * 5 Dim PersonName AsString * 20 ' Assign PersonId to fixed length text

PersonId = txtPersonId.Text

' Assign PersonName to fixed length text

PersonName = txtPersonName.Text ' Concatenate Id and Name

myRequest = PersonId & PersonName ' Queue the request

frmServer.List1.AddItem myRequest

EndSub

Bên frmServer, cứ mỗi 3 giây nó sẽ Remove Item trên hết ( tức là Index=0) trong List1 và xử lý Item ấy. Trong bài nầy ta chỉ Remove Item 0 rồi Add nó vào List2.

PrivateSub Timer1_Timer() Dim Item

If List1.ListCount > 0 Then

' Look at the item at the head of the queue

Item = List1.List(0)

' Process Item - just add it to List2 here

List2.AddItem Item ' Remove item from queue

List1.RemoveItem 0 EndIf

EndSub

CheckBox Listbox

Nếu bạn chọn value của Property Style của Listbox là CheckBox thay vì Standard thì mọi items trong Listbox sẽ có một hộp vuông phía trước để User có thể chọn lúc chạy program. Hộp vuông của item nào được checked (đánh dấu) thì Item ấy được Selected.

Giả sử ta có một Listbox List1 với Style Checkbox và có nhiều Items để mua trong siêu thị. Khi chạy progarm user chọn một số items rồi click nút Process, program sẽ hiển thị các item đã được chọn. Listing của Sub CmdProcess_Click như sau:

PrivateSub CmdProcess_Click() Dim Mess AsString

' get out if there's nothing in the list

If List1.ListCount = 0 ThenExitSub

' Iterate through every item of the checkBox Listbox

For i = 0 To List1.ListCount - 1

' If item is selected then include it in the shopping list

If List1.Selected(i) Then

' Append Item and a Carriage Return-LineFeed

Mess = Mess & List1.List(i) & vbCrLf EndIf

Next

' Display shopping list

EndSub

Một phần của tài liệu Kỹ thuật lập trình VB6 (Trang 73 - 75)

Tải bản đầy đủ (DOC)

(188 trang)
w