Xem mẫu

  1. CHƢƠNG 4 LẬP TRÌNH VỚI CÁC ĐIỀU KHIỂN MỞ RỘNG 4.1. Điều khiển Common Dialog Điều khiển hộp thoại thông dụng (Common Dialog) cung cấp một tập các hộp thoại chuẩn cho các thao tác nhƣ mở và lƣu trữ tệp tin, thiết lập các tuỳ chọn in, lựa chọn font chữ, màu. Điều khiển hộp thoại thông dụng cho phép ta hiển thị 6 loại hộp thoại thông dụng đó là: Open, Save As, Color, Font, Print, Help. Điều khiển hộp thoại thông dụng không phải điều khiển nội tại trong hộp công cụ. Muốn đƣa điều khiển hộp thoại thông dụng ra hộp công cụ, ta thực hiện các thao tác: Từ thực đơn Project ta chọn Components, xuất hiện hộp thoại Components, trong tab Control của hộp thoại ta tích vào mục Microsoft Common Dialog Control, sau đó kích OK. Muốn hiển thị hộp thoại thông dụng nào, ta đƣa điều khiển hộp thoại thông dụng lên Form, sau đó thiết lập các thuộc tính và gọi phƣơng thức hiển thị hộp thoại phù hợp. Các phƣơng thức tƣơng ứng để hiển thị các hộp thoại thông dụng: Phƣơng thức Hiển thị hộp thoại ShowOpen Open ShowSave Save As ShowColor Color ShowFont Font ShowPrinter Print ShowHelp Help 4.1.1. Open Dialog, Save Dialog Hộp thoại Open Dialog dùng để hiển thị hộp thoại Open (mở file). Hộp thoại Save Dialog dùng để hiển thị hộp thoại Save As (lƣu file). Hai hộp thoại này có một số thuộc tính chung, thông dụng gồm: Thuộc tính Giải thích CancelError Dùng để bắt lỗi khi ngƣời sử dụng nhấn nút Cancel nếu đƣợc gán giá trị True. DefaultExt Xác định phần mở rộng ngầm định của file DialogTitle Xác định tiêu đề của hộp thoại FileName Xác định tên và đƣờng dẫn của tệp tin mà ngƣời sử dụng đã chọn FileTitle Xác định tên tệp tin đƣợc chọn, không chứa đƣờng dẫn Filter Dùng để lọc kiểu tệp tin mà hộp thoại sẽ hiển thị 103
  2. FilterIndex Chỉ ra bộ lọc đƣợc sử dụng đầu tiên. InitDir Xác định thƣ mục sẽ hiển thị khi hộp thoại xuất hiện Ví dụ: Viết chƣơng trình sử dụng điều khiển hộp thoại Open và hộp thoại Save As để thực hiện mở, lƣu tập tin văn bản theo thiết kế sau: Mở tệp văn bản và hiển thị nội dung tệp trên textbox Mở tệp văn bản và lƣu nội dung trong textbox vào tệp Giải: Bƣớc 1. Thiết kế form theo mẫu bằng cách đƣa vào form 4 commandbutton, 1 textbox, sau đó xác định vị trí, kích thƣớc cho các điều khiển cho phù hợp. Bƣớc 2. Thiết lập một số thuộc tính cho các điều khiển nhƣ bảng sau: TT Điều khiển Thuộc tính Giá trị Ghi chú Name Form1 1 Form Caption Commondialog Name cmdopen 2 CommandButton Caption Open Name cmdsave 3 CommandButton Caption Save Name cmdappend 4 CommandButton Caption Append Name cmdexit Kết thúc chƣơng 5 CommandButton Caption Exit trình Bƣớc 3. Mở cửa sổ lệnh của Form1 và gõ vào các dòng lệnh sau: Dim f As Integer 'khai bao bien tep Private Sub cmdappend_Click() 104
  3. cdlhopthoai.ShowSave Open cdlhopthoai.FileName For Append As #f Print #f, Txtnd.Text Close f End Sub „------------------------------------------------------------------------------ Private Sub cmdexit_Click() End End Sub Private Sub cmdopen_Click() Dim s As String cdlhopthoai.ShowOpen Open cdlhopthoai.FileName For Input As #f 'Mo tep de doc Do While EOF(f) = False Line Input #f, s Txtnd.Text = Txtnd.Text & s & Chr(13) & Chr(10) Loop Close f 'dong tep End Sub „------------------------------------------------------------------------------ Private Sub cmdsave_Click() cdlhopthoai.ShowSave Open cdlhopthoai.FileName For Output As #f Print #f, Txtnd.Text 'Ghi van ban vao tep Close f End Sub Private Sub Form_Load() f = FreeFile End Sub Bƣớc 4. Chạy chƣơng trình (F5). 4.1.2. Color Dialog Hộp thoại Color cho phép ngƣời sử dụng chọn và hiển thị một màu từ bảng màu. Để hiển thị hộp thoại khi thi hành ta thực hiện nhƣ sau:  Thiết lập giá trị cdlCCRGBInit cho thuộc tính Flags.  Sử dụng phƣơng thức ShowColor để hiển thị hộp thoại. 105
  4.  Sử dụng thuộc tính Color để lấy ra giá trị RGB của màu mà ngƣời sử dụng đã chọn. 4.1.3. Font Dialog Hộp thoại Font cho phép ngƣời sử dụng thay đổi font chữ, màu chữ, cỡ chữ, kiểu chữ. Khi ngƣời sử dụng thực hiện lựa chọn trong hộp thoại Font các thuộc tính sau sẽ lƣu trữ các thông tin về sự lựa chọn của ngƣời sử dụng. Thuộc tính Giải thích Color Trả về màu đã đƣợc ngƣời sử dụng chọn. FontBold Cho biết kiểu chữ đậm có đƣợc chọn hay không FontItalic Cho biết kiểu chữ nghiêng có đƣợc chọn hay không FontStrikethru Cho biết kiểu chữ gạch ngang (strikethrough)có đƣợc chọn hay không FontUnderline Cho biết kiểu chữ gạch dƣới (underline)có đƣợc chọn hay không FontName Trả về tên của font đã đƣợc ngƣời sử dụng chọn FontSize Trả về cỡ chữ đã đƣợc ngƣời sử chọn Để hiển thị hộp thoại font ta thực hiện nhƣ sau:  Thiết lập một trong các giá trị hằng cho thuộc tính Flags: o cdlCFScreenFonts (fonts màn hình) o cdlCFPrinterFonts (fonts máy in) o cdlCFBoth (fonts màn hình và fonts máy in)  Sử dụng phƣơng thức ShowFont để hiển thị hộp thoại. 4.2. Điều khiển Image List Điều khiển này chứa các hình ảnh để dùng với các điều khiển khác nhƣ là ListView, TreeView, TabStrip, ToolBar, PictureBox, Image. ImageList hỗ trợ các loại file ảnh nhƣ : bitmap (*.bmp), biểu tƣợng (*.ico), GIF (*.gif), JPEG (*.jpg) và con trỏ (*.cur). Để có thể dùng các điều khiển ImageList, ToolBar, StatusBar, ListView, TreeView... trong đề án Visual Basic ta thực hiện nhƣ sau: Từ menu Project ta chọn Components xuất hiện hộp thoại Components, trong danh sách các thành phần ta tích mục “Microsoft Windows Common Controls 6.0 (SP6) sau đó nhấn OK. Các điều khiển trên đƣợc thêm vào hộp công cụ của Visual Basic. 106
  5. 4.2.1. Thêm phần tử ảnh cho ImageList lúc thiết kế Sau khi đã tạo một thể hiện của điều khiển ImageList lên form ta thực hiện các bƣớc sau:  Nhấn nút phải chuột lên điều khiển ImageList và chọn Properties  Chọn Tab Images để xem trang thuộc tính của điều khiển  Nhấn Insert Picture để hiển thị hộp thoại Select picture  Dùng hộp thoại để tìm tệp tin hình ảnh, rồi nhấn Open. Ta có thể chọn nhiều tệp tin cùng lúc.  Chỉ ra thuộc tính Key bằng cách chọn hộp Key và nhập một chuỗi. Hình 4.1. Hộp thoại Property Pages 4.2.2. Thêm phần tử ảnh cho ImageList vào lúc thi hành Để thêm hình ảnh lúc thi hành ta sử dụng phƣơng thức Add của thuộc tính ListImage của đối tƣợng ImageList với cú pháp nhƣ sau: ListImage.Add([Index], [Key], [Picture]) Trong đó: Tham số Index xác định vị trí phần tử ảnh đƣợc bổ sung vào danh sách, nếu bỏ qua tham số này, phần tử ảnh đƣợc bổ sung vào cuối danh sách ảnh. Tham số Key dùng để đặt tên cho phần tử ảnh, có thể sử dụng sau này để truy xuất vào phần tử ảnh đƣợc đặt tên đó. Tham số Picure xác định phần tử ảnh nào đƣợc bổ sung vào danh sách. Ví dụ: ImageList1.ListImages.Add ,"Cut", LoadPicture("d:\bitmaps\cut.bmp") 107
  6. 4.2.3. Gỡ bỏ phần tử ảnh khỏi ImageList vào lúc thi hành Để gỡ bở một phần tử ảnh khỏi danh sách, ta sử dụng phƣơng thức Remove của thuộc tính ListImage của đối tƣợng ImageList và truyền cho nó Index hoặc Key của phần tử cần loại bỏ. Ví dụ: ImageList1.ListImages.Remove “Cut” 4.2.4. Truy xuất phần tử ảnh trong ImageList. Để truy xuất hình ảnh từ ImageList và gán cho các đối tƣợng khác ta sử dụng thuộc tính Picture của ListImage. Ví dụ: Lập chƣơng trình sử dụng các điều khiển: ImageList, Image, Commandbutton, Timer, Commondialog tạo album ảnh bằng cách bổ sung ảnh vào ImageList lúc thi hành rồi hiển thị ảnh lần lƣợt 2 giây một ảnh, theo form mẫu: Giải: Bƣớc 1. Thiết kế form bằng cách đƣa các điều khiểnImageList, Image, Commandbutton, Timer, Commondialog lên form sau đó xác định vị trí, kích thƣớc của các điều khiển cho phù hợp. Bƣớc 2. Xác định giá trị cho một số thuộc tính của các điều khiển theo bảng sau: TT Điều khiển Thuộc tính Giá trị Ghi chú Name Form1 1 Form Caption Album 2 Image Name Image1 3 ImageList Name ImageList1 4 Timer Name Timer1 108
  7. Interval 2000 Name cmdadd Bổ sung ảnh vào 5 Commandbutton Caption Add Imagelist Name cmddisplay 6 Commandbutton Hiển thị ảnh Caption Display 7 Commondialog Name Commondialog1 Bƣớc 3. Mở cửa sổ Code của form1 và gõ vào các dòng lệnh sau: Dim i As Byte Private Sub cmdAdd_Click() commondialog1.Filter = "Graphics file|*.jpg" commondialog1.ShowOpen imagelist1.ListImages.Add imagelist1.ListImages.Count + 1, , LoadPicture(commondialog1.FileName) End Sub „---------------------------------------------------------------------------------------- Private Sub cmddisplay_Click() If i
  8. 4.3. Điều khiển MicroSoft Masked Edit Điều khiển MicroSoft Masked Edit cho phép định dạng dữ liệu nhập theo một định dạng đƣợc ấn định. Nó không những cung cấp một gợi ý trực quan để ngƣời sử dụng nhập liệu trong một trƣờng cụ thể mà còn cung cấp kiểm tra ở mức giao diện ngƣời sử dụng, để ngăn cản ngƣời sử dụng nhập các thông tin không hợp lệ vào điều khiển. Điều khiển MaskedEdit không có sẵn trong hộp công cụ. Nếu muốn sử dụng nó, ta thực hiện các thao tác sau để đƣa điều khiển vào hộp công cụ: Trong Visual Basic, chọn menu Project / Components. Hộp thoại Components xuất hiện. Trong danh sách các thành phần, tích vào mục “Microsoft MaskedEdit Control 6.0” rồi nhấn OK. 4.3.1. Dùng thuộc tính Mask để quy định mặt nạ nhập. Khi dùng điều khiển MaskedEdit, ta có khả năng ép ngƣời sử dụng nhập những thông tin theo một điều kiện nào đó. Ví dụ, với trƣờng mã khách hàng, ta có thể ép ngƣời sử dụng nhập tự 6 ký tự. Các quy tắc để quản lý những gì ngƣời sử dụng nhập vào trong một điều khiển Masked Edit đƣợc gọi là “Mặt nạ nhập- Masked”. Ta dùng thuộc tính Mask của điều khiển để gán mặt nạ nhập cho một điều khiển Masked Edit. Thuộc tính Mask đƣợc cấu tạo gồm một chuỗi ký tự thể hiện một mẫu để nhập dữ liệu trong hộp Masked Edit. Sau đây là các ký tự có thể đƣợc dùng trong chuỗi ký tự: Ký tự Mô tả # Chữ số . Số thập phân , Dấu phân cách hàng nghìn : Dấu phân cách giờ và phút / Dấu phân cách ngày tháng \ Mã escape để xử lý ký tự kế tiếp trong chuỗi tƣờng minh theo tứ tự từ trái qua phải & Dành chỗ cho ký tự > Chuyển đổi ký tự thành ký tự in hoa < Chuyển đổi ký tự thành ký tự thƣờng A Yêu cầu ký tự thuộc bảng chữ cái hay chữ số a Tuỳ chọn ký tự thuộc bảng chữ cái hay chữ số 9 Tuỳ chọn chữ số 110
  9. C Tuỳ chọn ký tự hay khoảng trắng ? 1 từ Các ký tự Hiển thị đúng nhƣ gõ vào khác Ví dụ, nếu ta ép ngƣời sử dụng nhập một số điện thoại 7 chữ số, ta quy định thuộc tính Mask nhƣ sau: # # # # # # # Lƣu ý: Nếu quy định thuộc tính Mask là một chuỗi rỗng, điều khiển Mask Edit sẽ hoạt động tƣơng tự điều khiển TextBox thông thƣờng. Nếu ngƣời sử dụng vi phạm điều kiện mặt nạ đã quy định, ứng dụng sẽ phát một tiếng “beep”, và ký tự bất hợp lệ sẽ không đƣợc chấp nhận. 4.3.2. Dùng thuộc tính Format để thay đổi hiển thị thông tin. Ngoài việc sử dụng thuộc tính Mask để yêu cầu ngƣời sử dụng nhập thông tin theo một điều kiện nào đó, ta còn có thể chỉ ra thông tin trong điều khiển sẽ đƣợc định dạng nhƣ thế nào trên màn hình. Ta thực hiện điều này bằng cách sử dụng thuộc tính Format của điều khiển Masked Edit. Ví dụ, nếu một trƣờng chứa 1 số điện thoại ta định hiển thị với dấu ngoặc và dấu gạch nối, ta dùng chuỗi Format nhƣ sau: (# # #) # # # - # # # # Điều này có nghĩa là ngƣời sử dụng chỉ cần nhập số điện thoại 10 chữ số. Các ký tự định dạng mở rộng, nhƣ là dấu ngoặc, đƣợc hiển thị tự động. 4.4. Điều khiển ToolBar Điều khiển ToolBar là một thanh công cụ chứa các nút (botton) mà ta có thể điều khiển đƣợc. Ta có thể chèn hình ảnh lên các nút nhờ đối tƣợng ImageList. Điều khiển ToolBar nằm trong nhóm các điều khiển thông dụng của Windows, nó cùng nhóm với điều khiển ImageList. 4.4.1. Thêm một nút lên thanh ToolBar Kích chuột phải vào điều khiển ToolBar và chọn Properties, hộp thoại Property Pages sẽ xuất hiện với 3 tab: General, Buttons và Picture. Chọn tab Button sau đó kích vào nút Insert Button để thêm một nút trên thanh ToolBar. Ta cần đƣa vào thuộc tính Key để phân biệt giữa các nút. 4.4.2. Chèn hình ảnh từ ImageList lên các nút Trong tab General của hộp thoại Property Pages chọn thuộc tính Imagelist là tên đối tƣợng ImageList mà ta đã đặt lên Form. 111
  10. Trong tab Buttons, thuộc tính Image sẽ lấy chỉ số của hình cần chèn đƣợc đặt trong ImageList, chỉ số này cho biết hình cần chèn là hình nào. 4.2.3. Các thuộc tính chính của Button trên ToolBar Trong tab Buttons thể hiện thuộc tính của các nút, Trong đó: Index: Xác định chỉ số của Button Caption: Xác định xâu ký tự hiển thị trên Button Key: Là xâu ký tự có thể dùng để phân biệt các Button Style: Xác định dạng hiển thị của Button, nó có thể nhận một trong các giá trị 0 – tbrDefault: Dạng mặc định của Button 1 – tbrCheck: Giống nhƣ CheckBox, nó lún xuống khi kích lần thứ nhất và trở về trạng thài ban đầu khi nhấn lần nữa. 2 – tbrButtonGroup: Khi ta lập 2 nút trở lên thành một nhóm thì khi kích nút nào thì nút đó sẽ nhấn xuống, khi kích một nút khác trong nhóm thì nút đƣợc kích sẽ lún xuống và nút đang lún trƣớc đó sẽ nổi lên. 3 - tbrSeparator: Tạo một dấu gạch ngăn cách giữa các nút hay nhóm nút. 4 - tbrPlaceHolder: Cho phép làm vật chứa cho nút điều khiển khác. 5 – tbrDropDown: Nút có thêm một phím mũi tên, cho phép liệt kê một số nút khác khi kích vào mũi tên này. Value: Xác định trạng thái của Button khi chƣơng trình thi hành là nhấn hay chƣa đƣợc nhấn, nó nhận một trong hai giá trị: 0 – tbrUnpressed: Mặc định nút chƣa đƣợc nhấn 1 – tbrPressed: Mặc định nút đƣợc nhấn 4.5. Điều khiển TreeView Là điều khiển dùng để trình bày cấu trúc tổ chức của một đối tƣợng nhƣ cấu trúc cây thƣ mục, tổ chức một cơ quan, một đơn vị. 4.5.1. Các thuộc tính Nodes: Thuộc tính quan trọng nhất của TreeView, là một danh sách các đối tƣợng Node (nút). Mỗi Node đƣợc xem là một cây con, có các nút con, nút cháu.... ImageList: Tham chiếu đến đối tƣợng ImageList chứa danh sách hình ảnh liên kết với TreeView. Ta có thể gán giá trị cho thuộc tính này trong hộp thoại Property Pages hoặc bằng câu lệnh nhƣ sau: Set TreeView1.ImageList = ImageList1 CheckBoxes (True/False): Làm xuất hiện CheckBox bên trái mỗi nút LabelEdit: Xác định chế độ sửa giá trị nhãn (0-tvwAutomatic, 1-tvwManual) 112
  11. LineStyle: Xác định kiểu đƣờng nối giữa nút cha và các nút con (0-tvwTreeLines, 1-tvwRootLines) SelectedItem: Trả về một Node đƣợc chọn trong TreeView hoặc dùng để chọn một Node trong TreeView  Chọn nút gốc trong TreeView: Set TreeView1.SelectedItem = TreeView1.Nodes(“Root”)  In giá trị nút đang đƣợc chọn Dim nd As Node Set nd = TreeView1.SelectedItem Debug.Print nd.Text Các thuộc tính của đối tƣợng Node Child: Tham chiếu đến nút con đầu tiên Children: Trả về số con Expanded (True/False): Làm xuất hiện/ẩn các nút con của một nút, tƣơng đƣơng với việc kích chuột vào nút +/- để triển khai/thu gọn một nút. FirstSubling: Tham chiếu đến nút con đầu tiên ở cùng cấp LastSubling: Tham chiếu đến nút con cuối cùng ở cùng cấp Next:Tham chiếu đến nút con tiếp theo ở cùng cấp Previous:Tham chiếu đến nút con liền trƣớc ở cùng cấp Parent: Tham chiếu đến nút cha của một nút Root: Tham chiếu đến nút gốc Sorted: Sắp xếp các nút cùng cấp theo thứ tự Alphabet Text: Chuỗi xuất hiện bên trái của nút Index: Số thứ tự của nút trong mảng chứa các nút cùng cấp Chƣơng trình con sau in ra nhãn (text) của nút con của một nút Private Sub List Children(pnod As Node) Dim pnodeCurrent As Node Set pnodeCurrent = pnod.Child For i = 1 to pnod.Children Debug.Print pnodCurrent.Text Set pnodeCurrent = pnodeCurrent.Next Next End Sub In các nút con của nút gốc Private Sub Command1_Click() Dim nd As Node Set nd = TreeView1.Nodes(“Root”) ListChildren nd End Sub 113
  12. 4.5.2. Phương thức Thêm một nút vào danh sách Add [Relative][,Relationship][,Key][,Text][,Image][,SelImage] Trong đó: Relative: Nhận giá trị là Key hoặc Index của nút mà nút mới đƣợc thêm vào. Quan hệ của nút mới thêm vào và nút đó nhƣ sau:  0-tvwFirst: Nút đƣợc thêm vào là nút đầu tiên so với các nút cùng cấp với nút đƣợc cho trong tham số Relative  1-tvwLast: Nút đƣợc thêm vào là nút cuối cùng so với các nút cùng cấp với nút đƣợc cho trong tham số Relative Relationship  2-tvwNext: Nút đƣợc thêm vào là nút tiếp theo của nút đƣợc cho trong tham số Relative  3-tvwPrevious: Nút đƣợc thêm vào là nút kế trƣớc của nút đƣợc cho trong tham số Relative  4-tvwChild: Nút đƣợc thêm vào là nút con của nút đƣợc cho trong tham số Relative Key: Chuỗi văn bản duy nhất cho mỗi nút Text: Chuỗi văn bản xuất hiện bên trái mỗi nút Image: Hình ảnh của nút ở trạng thái bình thƣờng SelImage: Hình ảnh của nút ở trạng thái đƣợc chọn Remove Index/Key: Xoá nút đƣợc xác định bởi Index/Key Clear: Xoá toàn bộ cây trong TreeView 4.5.3. Sự kiện NodeClick: Là sự kiện xảy ra khi ngƣời sử dụng kích chuột vào một nút 4.6. Điều khiển MultiMedia Điều khiển Multimedia MCI quản lí việc ghi và phát các tệp tin đa phƣơng tiện trên thiết bị giao tiếp điều khiển truyền thông (Media Control Interface - MCI). Điều khiển này chứa một loạt các nút bấm để phát ra các lệnh tới các thiết bị nhƣ CD- ROM, audio, video v.v... Điều khiển Multimedia không có sẵn trong hộp công cụ. Để đƣa điều khiển Multimedia vào hộp công cụ, ta làm nhƣ sau: 114
  13. - Trong Visual Basic, chọn menu Project / Components. Hộp thoại Components xuất hiện. - Trong danh sách các thành phần, tích chọn “Microsoft Multimedia Control 6.0”. - Nhấn OK. Điều khiển Multimedia (MMControl) đƣợc thêm vào hộp công cụ của Visual Basic. Nháy đúp chuột vào điều khiển MMControl để đƣa điều khiển lên Form. Khi đó Form có dạng: Với các nút tƣơng ứng là: Prev, Next, Play, Pause, Back, Step, Stop, Record, và Eject. Sau khi nạp điều khiển MCI vào đề án, bạn đặt nó lên biểu mẫu và định cỡ nó theo nhu cầu. Do điều khiển MCI có thể truy xuất nhiều kiểu phƣơng tiện khác nhau, chúng ta phải báo cho điều khiển biết sẽ dùng kiểu nào bằng cách thiết lập giá trị cho thuộc tính DeviceType một trong các giá trị sau: Giá trị Phƣơng tiện CDAudio CD audio DAT Digital Audio Tape DigitalVideo Digital video Other Other Overlay Overlay Scanner Scanner Sequencer Sequencer VCR Vcr AVIVideo AVI Videodisc Videodisc Waveaudio Wave audio Sau khi xác lập DeviceType, ta phải mở thiết bị sử dụng lệnh Open. Lệnh này có cú pháp nhƣ sau: MMControl1.Command = “Open” Trong đó, MMControl1 là tên của điều khiển của MMControl. Thông thƣờng trƣớc khi sử dụng lệnh Open ta thiết lập giá trị cho một số thuộc tính. Ví dụ: 115
  14. MMControl1.Notify = False MMControl1.Wait = True MMControl1.Shareable = False MMControl1.Command = True MMControl1.DeviceType = "CDAudio" MMControl1.FileName = Audio_fname „Chỉ ra tên tập tin âm thanh MMControl1.Command = "Open" Nếu tính chất Notify đƣợc ấn dịnh theo True, điều khiển sẽ phát sinh sự kiện Done sau khi một lệnh đƣợc phát ra. Trong hầu hết các ứng dụng, tính chất Notify thƣờng không đƣợc dùng, do đó ở đây nó đƣợc ấn định theo False. Tính chất Wait đƣợc dùng để xác định cách thức mà chƣơng trình bắt đầu lại điều khiển sau khi truy xuất thiết bị Multimedia. Nếu tính chất Wait đƣợc ấn định theo False, điều khiển MCI sẽ không chờ cho phƣơng tiện đã chỉ định phát xong thì mới trả quyền điều khiển. Nếu tính chất Wait đƣợc ấn định theo True, quyền điều khiển chƣơng trình sẽ không trở về chƣơng trình của bạn cho đến khi phƣơng tiện đã chỉ định phát xong. Tính chất Shareable xác định một chƣơng trình khác sẽ đƣợc phép dùng chung thiết bị MCI. Tính chất này đƣợc ấn định theo True nếu nó đƣợc phép và False nếu nhƣ không. Giá trị của các tính chất này có thể thay đổi trong các chƣơng trình, nhƣng điều quan trọng phải biết đó là nếu dự định xác lập các giá trị này, chúng phải đƣợc ấn định trƣớc khi phát ra lệnh Open. Các lệnh tiếp theo có thể dùng với điều khiển MMControl là: Open, Close, Play, Pause, Stop, Back, Step, Prev, Next, Seek, Record, Eject, Save. Ví dụ: Ta dùng lệnh Play để mở tập tin âm thanh MMControl1.Command = “Play” Ta cũng có thể phát các lệnh khác tuỳ ý, nhƣ Pause và Stop. Để phát các lệnh này, ta dùng cú pháp giống nhƣ với lệnh Play. Khi phát xong kiểu phƣơng tiện mong muốn, ta phải đóng thiết bị, cũng nhƣ phải đóng một tập tin Visual Basic sau khi mở nó để bảo toàn tài nguyên. Để đóng thiết bị, ta phát lệnh Close, giống cú pháp của lệnh Play ở trên. 4.7. Menu Có hai loại menu thƣờng gặp là menu thả xuống (drop-down menu) và menu hiện lên (pop-up menu). Chúng ta thƣờng dùng menu drop-down làm menu chính cho chƣơng trình, nó thƣờng nằm theo chiều ngang, nếu ta nhấp chuột vào một mục chọn (menu command) thì chƣơng trình sẽ thả xuống một menu với những mục chọn con (MenuItems) nằm dọc theo chiều thẳng đứng. Nếu ta nhấp chuột lên mục chọn con nào đó có dấu hình tam giác nhỏ bên phải thì chƣơng trình sẽ hiện lên một 116
  15. menu nhƣ trong ví dụ sau đây: Nhấp chuột vào mục chọn đơn “Mầu sắc” chƣơng trình sẽ thả xuống một menu (drop-down menu); nhấp chuột vào mục chọn con “Chọn mầu”, chƣơng trình sẽ hiện lên một menu (pop-up menu). Ví dụ: Chúng ta quy ƣớc gọi lệnh đơn (mục chọn đơn) là Menu Command, và lệnh con (mục chọn con) là MenuItems. Thiết kế menu gồm 2 công việc: - Thiết kế giao diện. - Viết lệnh cho các thủ tục đáp ứng sự kiện chọn các mục menu. Chúng ta sẽ trình bày phần này bằng chƣơng trình chọn mầu nền cho Form và thay đổi kích thƣớc của Form. Chƣơng trình sẽ cung cấp một menu gồm có 2 trình đơn: “Mầu sắc” và “Kích thƣớc”. Trình đơn “Mầu sắc” cho phép ta thay đổi mầu nền của Form, trình đơn “Kích thƣớc” cho phép ta thay đổi kích thƣớc Form. - Trong trình đơn “Mầu sắc” có 2 mục là “Chọn mầu” và “Thoát”. Khi chọn mục “Chọn mầu” trong trình đơn “Mầu sắc”, một menu xuất hiện với 3 mục là “Xanh”, “Đỏ” và “Trắng”, đay là các mầu ta có thể chọn làm mầu nền Form. Khi ta chọn mục “Thoát” trong trình đơn “Mầu sắc”, chƣơng trình kết thúc. - Trong trình đơn “Kích thƣớc” có 2 mục là “Phóng to” và “Thu nhỏ”. Khi chọn mục “Phóng to”, kích thƣớc của Form sẽ phóng to chiếm toàn bộ màn hình. Khi chọn mục “Thu nhỏ”, kích thƣớc của Form sẽ thu nhỏ nhƣ lúc ban đầu. a) Thiết kế giao diện Bƣớc 1. Chọn một Form để thiết kế menu. Ví dụ Form có tên là frmMenu, có thuộc tính Caption là “Chon mau nen va kich thuoc Form”. Bƣớc 2. Gọi Menu Editor bằng 2 cách: Cách 1: Trên menu của Visual Basic chọn Tools -> chọn mục Menu Editor. 117
  16. Hình 4.2. Lệnh đơn Menu Editor Cách 2: Nhấn nút lệnh Menu Editor ( ) trên thanh công cụ chuẩn. Menu Editor Hình 4.3. Công cụ Menu Editor Bƣớc 3. Tạo các mục chọn trên menu: Sau khi gọi Menu Editor thì cửa sổ “Menu Editor” sẽ xuất hiện: Hình 4.4. Hộp thoại Menu Editor - Gõ tên mục chọn trong hộp gõ văn bản Caption. Ví dụ ta gõ “&Mầu sắc”. Nếu muốn dùng phím thay thế khi sử dụng menu, ta có thể đặt dấu & ở ngay trƣớc ký tự mà ta muốn trong phần Caption này, ví dụ nhấn Alt-M sẽ cho chọn mục “Mầu sắc”. Để tạo gạch ngang phân cách giữa các mục chọn, tại hộp gõ văn bản ta gõ dấu trừ “- “. 118
  17. - Gõ tên mục chọn trong hộp văn bản “Name”, quy ƣớc có “mnu” ở tên để phân biệt với các đối tƣợng khác trong Form. Ví dụ, đặt tên cho mục chọn đơn là “mnuMausac”. Nhấp chuột vào nút “Next” để tạo các mục chọn khác menu. Tƣơng tự nhƣ đã tạo Menu Command “Mầu sắc” ở trên, ta tạo Menu Command “Kích thƣớc”. Trong các Menu Command thƣờng có các MenuItems. Tất cả các MenuItems của Menu Command đều nằm thụt vào bên phải với 4 dấu chấm “….” ở phía trƣớc. Khi ta nhấp chuột vào dấu mũi tên chỉ sang bên phải trong cửa sổ Menu Editor thì MenuItems ta đang chỉnh sửa sẽ có thêm 4 dấu chấm “….”, tức là thụt vào một bậc trong Menu. Nếu muốn tạo MenuItems có cấp thấp hơn nữa thì ta lại tiếp tục nhấp mũi tên sang phải , MenuItems lại thụt tiếp một bậc nữa. 119
  18. Tƣơng tự, nếu ta nhấp mũi tên sang trái thì MenuItems đang chỉnh sửa sẽ mất 4 dấu chấm “….” phía trƣớc, tức là nó đã đƣợc trồi ra một bậc. Ta tạo các MenuItems cho Menu Command “Mầu sắc” gồm: “Chọn mầu”, dấu gạch ngang và “Thoát”. Menu Command “Kích thƣớc” có các MenuItems là “Phóng to” và “Thu nhỏ” bằng cách tạo nhƣ các Menu Command rồi nhấp vào mũi tên sang phải để nó trở thành các MenuItems, ta cũng có thể thay đổi thứ tự các mục chọn trong menu sử dụng các phím mũi tên lê, mũi tên xuống. Để chèn một dòng mới vào menu đã có sẵn, ta đặt thanh sáng ở dòng muốn chèn vào trƣớc nó rồi nhấn vào nút “Insert”. Để xoá một dòng trong menu, ta chọn dòng muốn xoá rồi nhấn nút “Delete”. Mỗi MenuItems có thêm một tính năng nữa, đó là ta có thể tạo phím tắt cho nó trong mục “Shortcut”. Ví dụ, ta có thể dùng phím tắt Ctrl-E để thay cho việc chọn lệnh đơn “Thoát”. Có một số tuỳ chọn trong Menu Editor chúng ta có thể chọn nhƣ Mục “Visible” dùng để hiện/ẩn một mục chọn trong menu. Mục “Enable” dùng để cho phép/vô hiệu hoá một mục chọn trong menu Mục “Check” dùng để thêm/không thêm dấu kiểm bên trái một mục chọn trong menu khi nó đƣợc chọn. Sau đây là bảng danh mục các mục chọn trên menu của Form “frmMenu”: Mục chọn Caption Name Checked Mầu sắc &Mầu sắc mnumausac Chọn mầu ….&Chọn mầu mnuchonmau Xanh ……..&Xanh mnuXanh x Đỏ ……..&Đỏ mnuDo x Trắng ……..&Trắng mnuTrang x 120
  19. Dấu gạch ngang ….- mnugach Thoát ….&Thoát mnuThoat Kích thƣớc &Kích thƣớc mnukichthuoc Phóng to ….&Phóng to mnuTo x Thu nhỏ ….&Thu nhỏ mnuNho x Ghi chú: Muốn hiển thị đƣợc menu tiếng Việt, ta chọn bộ mã TCVN3 để gõ tên mục chọn trong Menu Editor. Trƣớc khi chạy chƣơng trình ta thiết lập thuộc tính font cho menu của hệ thống nhƣ sau: Kích phải chuột vào màn hình nền, chọn Properties để hiển thị hộp thoại Display Properties, chọn Tab Appearance, rồi nhấn nút Advanced, trong mục Item chọn Menu, sau đó chọn font .vntime, cỡ 12 rồi nhấn nút OK, tiếp đó nhấn nút Apply và cuối cùng là nhấn nút OK. Đừng bận tâm nếu trong hộp thoại Menu Editor không hiển thị đúng tiếng Việt. b) Viết lệnh cho các thủ tục đáp ứng sự kiện chọn (Click) mục chọn Mỗi mục chọn trên menu có một thủ tục đáp ứng sự kiện Click của ngƣời sử dụng chƣơng trình. Ví dụ, khi ngƣời sử dụng chọn mục “Thoát” trong trình đơn “Mầu sắc” thì thủ tục mnuthoat_Click( ) đƣợc thực hiện. Thủ tục Form_Load ( ) Thủ tục này thực hiện ngay khi ta khởi động chƣơng trình. Thủ tục làm nhiệm vụ ẩn đi 2 mục “Trắng” và “Thu nhỏ” bằng cách đặt thuộc tính “Enable” có giá trị là False. Private Sub Form_Load() mnutrang.Enabled = False mnunho.Enabled = False End Sub Thủ tục mnudo_Click ( ) Thủ tục đƣợc thực hiện khi ta chọn mục “Đỏ”. Thủ tục có nhiệm vụ đổi mầu nền của Form thành mầu đỏ và cho ẩn đi mục “Đỏ”, đồng thời bật các mục “Xanh” và “Trắng” lên. Private Sub mnuDo_Click() frmMenu.BackColor = vbRed ' Đặt mầu nền là đỏ mnudo.Enabled = False ' Vô hiệu hoá mục chọn “Đỏ” mnuxanh.Enabled = True ' Cho phép sử dụng mục chọn “Xanh” mnutrang.Enabled = True ' Cho phép sử dụng mục chọn “Trắng” End Sub Thủ tục mnuTrang_Click ( ) 121
  20. Tƣơng tự thủ tục mnuDo_Click(), nhƣng đổi mầu nền của Form thành mầu trắng và cho vô hiệu hoá mục chọn “Trắng”. Thủ tục mnuXanh_Click ( ) Tƣơng tự thủ tục mnuDo_Click(), nhƣng đổi mầu nền của Form thành màu xanh và cho vô hiệu hoá mục chọn “Xanh”. Thủ tục mnuTo_Click ( ) Thủ tục thực hiện khi ta chọn mục “Phóng to”. Thủ tục làm nhiệm vụ đƣa cửa sổ Form về dạng lớn và vô hiệu hoá mục chọn “Phóng to” đi, đồng thời bật mục “Thu nhỏ”. Private Sub mnuTo_Click() frmMenu.WindowState = 2 'Đặt thủ tục Form ở dạng lớn mnuTo.Enabled = False 'Vo hiệu hoá mục chọn “Phóng to” mnunho.Enabled = True 'Cho phép đổi cửa sổ Form sang dạng nhỏ End Sub Thủ tục mnuNho_Click ( ) Thủ tục thực hiện tƣơng tự thủ tục mnuTo_Click() thực hiện thu nhỏ cửa sổ. Thủ tục mnuThoat_Click ( ) Thủ tục thực hiện khi ta chọn mục “Thoát”. Thủ tục làm nhiệm vụ kết thúc chƣơng trình. Private Sub mnuthoat_Click() End End Sub 4.8. Điều khiển RichTextBox Điều khiển RichTextBox cho phép ngƣời sử dụng nhập và sửa văn bản đồng thời cũng tạo ra nhiều đặc tính định dạng hơn điều khiển TextBox thông thƣờng Điều khiển RichTextBox tạo ra một số các thuộc tính mà ta có thể sử dụng để thay đổi định dạng của bất cứ phần nào thuộc văn bản trong điều khiển. Sử dụng các thuộc tính này ta có thể thay đổi màu chữ, chữ đậm hoặc nghiêng, tạo chỉ số trên, chỉ 122
nguon tai.lieu . vn