visual basic chapter 9 ppt

12 290 0
visual basic chapter 9 ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG 9 MẢNG – ĐỐI TƯNG TIMER, OPTIONBUTTON, CHECKBOX, LINE, SHAPE 1) Đối tượng TIMER 1.1) Chức năng Đối tượng Timer là đối tượng dùng để xử lý các hành động theo biến cố thời gian. Biến cố thời gian: Khi bạn muốn trong chương trình, qua một khoảng thời gian sẽ tự động làm một điều gì đó, bạn cần phải cho chương trình phát ra một biến cố thời gian. Bạn sẽ sử dụng đối tượng Timer để sinh ra biến cố thời gian. → Bạn sẽ viết lệnh để quy đònh mỗi lần biến cố thời gian xảy ra form sẽ làm gì. → Đặt đối tượng Timer lên form. Timer không xuất hiện trên form như một cửa sổ. → Khi được đặt trên form thì cứ sau một khoảng thời gian nhất đònh do bạn quy đònh, Timer sẽ phát ra một biến cố thời gian cho form. 1.2) Các thuộc tính Đối tượng Timer có hai property chính như sau: 1.3) Enabled Giá trò luận lý dùng để cho phép đối tượng hoạt động hay không hoạt động như mọi đối tượng khác. Đối với Timer, khi đặt Enabled = False tức là không cho phép Timer phát ra biến cố thời gian nữa. 1.4) Interval Đây là một giá trò số dùng để quy đònh sau bao nhiêu lâu (tức là chu kỳ) thì phát ra biến cố thời gian. → Đơn vò tính bằng mili giây (1/1000 giây). → Bạn có thể đặt giá trò cho nó trong giai đoạn thiết kế hay trong chương trình. Ví dụ : Bạn muốn cứ sau 1 giây thì phát ra biến cố thời gian để thực hiện một điều gì đó, bạn sẽ đặt Interval = 1000. → Giá trò đặt cho Interval phải trong khoảng từ 1 đến 65.535. Nếu đặt Interval = 0 cũng có nghóa bạn không cho phép Timer hoạt động. 2) Biến mảng 2.1) Khái niệm Mảng là một dãy các giá trò cùng kiểu với nhau, có cùng một tên (name) và truy xuất thông qua một con số gọi là chỉ số của mảng (index). Ví dụ: Bạn cần lưu 10 con số, thay vì phải đặt ra 10 biến với 10 cái tên để giữ 10 con số này, bạn có thể khai báo một mảng gồm 10 phần tử, khi cần truy xuất các con số này bạn chỉ cần dùng tên mảng và ghi thêm một con số để cho biết lấy phần tử thứ mấy trong mảng. 2.2) Khai báo Mảng cũng giống như biến, có thể dùng các từ khoá Dim, Private, Public hoặc Static để khai báo theo cách thức như sau: Dim / Private / Public / Static Tên mảng (số phần tử ) As Kiểu dữ liệu Ví dụ: Dim Aint (10) As Integer 'Khai báo mảng Aint có 11 phần tử số nguyên ∼1∼ → Các chỉ số dùng trong mảng mặc nhiên bắt đầu từ số 0 , vì vậy khi khai báo Aint (10) tức bạn có các phần tử từ 0 đến 10 tức 11 phần tử.  Khi cần truy xuất các phần tử trong mảng, bạn viết theo cú pháp: Tên mảng (chỉ số) [= giá trò] Ví dụ: Aint (1) = 100 ‘Gán phần tử thứ hai trong mảng AInt giá trò 100  Chỉ số đầu tiên trong mảng mặc nhiên là từ 0, nhưng bạn cũng có thể quy đònh giá trò đầu tiên đó bằng hai cách: a) Dùng lệnh : Option Base 1 Khi đặt câu lệnh Option Base 1 tronh phần General, tất cả các mảng bạn khai báo sẽ có chỉ số đầu tiên tính từ 1. b) Khai báo khoảng chỉ số trong lệnh khai báo bằng từ khoá To: Dim tên mảng ( chỉ số đầu To chỉ số cuối ) As Kiểu dữ liệu Ví dụ: Dim Aname (101 To 200 ) As String ‘khai báo mảng Aname gồm 100 phần tử, phần tử đầu tiên bắt đầu từ 101  Như vậy , các property List và ItemData của ListBox và ComboBox cũng chính là các mảng. List là mảng các chuỗi ký tự và ItemData là mảng các số nguyên. 2.3) Dùng mảng các đối tượng Bạn cũng có thể tạo cho các đối tượng trên một form thành một mảng để dễ truy xuất và không phải đặt ra quá nhiều tên.  Cách tạo mảng các đối tượng. → Khi tạo đối tượng mới trên form, nếu bạn đặt tên cho nó trùng với tên của một đối tượng có sẵn trên form, Visual Basic sẽ hiện ra hộp thông báo có sau: Thông báo này cho bạn biết rằng trên form hiện thời đã có một đối tượng có tên “Check1” , bạn có muốn tạo nó thành mảng các đối tượng hay không. Nếu bạn chọn Yes thì Visual Bacis sẽ tạo từ đối tượng có sẵn và đối tượng mới thành một mảng. → Bạn muốn mảng có bao nhiêu đối tượng bạn sẽ làm bấy nhiêu lần đặt tên trùng nhau như vậy. → Tên trùng nhau như vậy chính là tên mảng. → Khi đã tạo các đối tượng thành một mảng, muốn truy xuất nó ngoài tên bạn còn phải ghi thêm chỉ số của đối tượng thành phần. ∼2∼ → Trong quá trình thiết kế bạn có thể quy đònh chỉ số cho mỗi đối tượng trong mảng bằng property Index của chúng. → Trong trường hợp mặc nhiên, Visual Basic đặt giá trò chi Index theo thứ tự bạn tạo các đối tượng trong mảng.  Thủ tục xử lý mảng Khi một đối tượng là một phần tử trong một mảng đối tượng, các thủ tục để xử lý các biến cố xảy ra trên nó được dùng chung cho tất cả các phần tử của mảng và có thêm một tham số Index để cho biết biến cố sẽ xảy ra trên phần tử thứ mấy của mảng. Ví dụ: bạn tạo ra một mảng gồm nhiều CheckBox trên form và đặt tên cho mảng đó là cbCheck chẳng hạn, khi double click lên một trong các CheckBox của mảng để viết lệnh cho nó, thủ tục sẽ có dạng như thế này: Private Sub cbCheck-Click ( index As Integer) → Bạn hãy xét tham số Index để xem biến cố đó xảy ra cho CheckBox thứ bao nhiêu trong mảng. Thay vì bình thường nó là như thế này: Private Sub cbCheck-Click () ♣Chương trình ví dụ Chương trình “The Jumper” khi chạy sẽ cho thấy hình người đang nhảy múa. Trong chương trình có sử dụng mảng các đối tượng Image để giữ các hình dạng người ở các tư thế khác nhau. Đối tượng Timer dùng kích hoạt các hình ảnh này, hiển thò các hình người liên tiếp nhau, tạo cảm giác nhảy múa. a) Trong form, dùng một đối tượng Image có các thuộc tính sau: Thuộc tính giá trò Name Img1 Picture none Visible true Stretch true b) Tạo mảng gồm 6 đối tượng image có các thuộc tính sau: Thuộc tính giá trò Name Image1 Visible false Mỗi đối tượng trong Image1 sẽ có thuộc tính Picture giữ 1 trong các file sau: Amconfus.wmf, Amdisast.wmf, Amhappy.wmf, Amorgani.wmf, Amproble.wmf, Amvictor.wmf Các file chứa trong đường dẫn C:\Program File\Microsoft Office\Clipart\Popular c) Đối tượng Timer có các thuộc tính sau: Thuộc tính giá trò Name Timer1 ∼3∼ Interval 200 Các thủ tục xử lý các biến cố viết như sau: ‘ Khai báo biến dùng chung cho các thủ tục trong phần General: Option Explicit Dim i As Byte Private Sub Form_Load() i = 0 End Sub Private Sub Timer1_Timer() If i < 6 Then Img1.Picture = Image1(i).Picture i = i + 1 Else i = 0 End If End Sub Khi chương trình chạy, cứ mỗi 200/1000 giây, tức 2/10 giây thì sinh ra biến cố Timer. Thủ tục đáp ứng là: nạp một hình ảnh vào đối tượng Img1 từ một phần tử thứ i của mảng Image1. Sự thay đổi hình ảnh liên tục theo thời gian sẽ tạo cả giác nhìn thấy người đang nhảy múa. 3) Đối tượng FRAME Đối tượng Frame chỉ trình bày một khung hình chữ nhật trên form. Frame được dùng để chứa các đối tượng khác, còn bản thân nó không làm gì cả. Khi bạn tạo ra một frame. Sau đó nếu bạn vẽ bất kỳ đối tượng nào bên trong frame này thì frame sẽ trở thành vật chứa của đối tượng đó, có nghóa là các toạ độ của đối tượng đó sẽ tính theo góc trái trên cùng của frame chứ không phải của form nữa,và khi bạn kéo frame đi đến đâu các đối tượng bên trong cũng đi theo đến đó. Thông thường người ta hay dùng Frame để bỏ các OptionButton vào đó. 4) Đối tượng OptionButton 4.1) Chức năng Đối tượng OptionButton là một nút chọn trên form. Các OptionButton thường đi thành một nhóm, khi một nút được chọn, tất cả các nút khác trong nhóm đó đều sẽ bỏ chọn. Nói cách khác, mỗi lần, chỉ có thể chọn duy nhất một nút trong nhóm. Như vậy, bạn dùng OptionButton trong trường hợp bạn đưa ra nhiều chọn lựa nhưng chỉ cho phép chọn một cái duy nhất trong những cái được đưa ra. Hơn nữa khi tạo OptionButton, cần phải phân nhóm cho chúng bằng cách đặt từng nhóm vào trong các Frame khác nhau. Ví dụ. Nhóm các OptionButton nằm trong Frame có tiêu đề Alignment. Rõ ràng khi bạn chọn một mục trong Alignment, các mục khác sẽ bò bỏ chọn. ∼4∼ 4.2) Các thuộc tính 4.2.1) Value Đây là property chính của OptionButton. Nó là một giá trò luận lý để chỉ một nút đang ở trạng thái được chọn hay bỏ chọn. → True là đang chọn → False là bỏ chọn.  Khi thiết kế nếu bạn đặt cho một OptionButton trong nhóm có Value = True thì phải đặt những cái còn lại trong nhóm bằng False.  Thông thường, các OptionButton nằm theo một nhóm và chương trình chỉ nhận một giá trò chọn từ một trong các nút chọn này, vì vậy để cho dễ truy xuất và quản lý chương trình, bạn nên tạo các OptionButton thành một mảng các đối tượng 4.2.2) Alignment Dùng để quy đònh vò trí của nút chọn. Nó có thể đặt bằng một trong hai giá trò: • 0 Left Justify Nút chọn nằm bên trái tiêu đề, đây là trường hợp mặc nhiên thường dùng. • 1 Right Justify Nút chọn nằm bên phải tiêu đề.  Các property còn lại và các method giống như CheckBox và các đối tượng khác. 5) Đối tượng CHECKBOX 5.1) Chức năng Đối tượng checkbox được đặt trên form để quy đònh chọn lựa một cái gì đó. Thông thường nó có hai trạng thái chọn (có dấu v bên trong ô chọn) hoặc không chọn (ô chọn rỗng). 5.2) Các thuộc tính 5.2.1) Property Caption Dòng tiêu đề của checkbox. 5.2.2) Property Value Đây là property quan trọng nhất của checkbox. Nó là một giá trò số , dùng để xác đònh trạng thái chọn hay không chọn của checkbox. Nó có thể một trong 3 giá trò: • 0_Unchecked : Checkbox ở trạng thái không chọn. • 1_Checked : Checkbox ở trạng thái chọn. ∼5∼ • 2_Grayed : Checkbox ở trạng thái xám, tức không cho phép nhấn mouse hay phím lên đó để thay đổi.  Khi bạn muốn xem xét người sử dụng có chọn checkbox này không, bạn sẽ truy xuất property này xem nó bằng 0 hay 1. Khi người sử dụng click mouse lên checkbox nó chỉ chuyển đổi giữa hai trạng thái chọn(Checked) và không chọn(Uncheck),còn trạng thái thứ ba(Grayed) là do bạn tự quy đònh trong trường hợp đặc biệt nào đó.  Cần phân biệt OptionButton với CheckBox. Cả hai đối tượng này đều được dùng để chọn hay không chọn một cái gì đó. Khi chọn theo kiểu CheckBox, bạn có thể chọn bao nhiêu cái trong những cái đưa ra cũng được. Còn với OptionButton thường đi thành một nhóm, khi một nút được chọn, tất cả các nút khác trong nhóm đó đều sẽ bỏ chọn 6) Đối tượng LINE 6.1) Chức năng Đối tượng Line là một đối tượng chỉ đơn giản vẽ một đường thẳng trên form. Bạn có thể dùng nó để trình bày form cho dễ. Thay vì muốn kẻ những đường thẳng trên form để trang trí một cái gì đó, bạn phải gọi method Line của form để trình bày, khi dùng method Line bạn chỉ nhìn thấy được đường thẳng đó khi chương trình chạy mà thôi. Khi dùng đối tượng Line, trong giai đoạn thiết kế bạn có thể nhìn thấy đường thẳng và sẽ dễ bố trí nó ở các vò trí thích hợp. 6.2) Các thuộc tính 6.2.1) BordeColor Dùng để quy đònh màu của đường thẳng. 6.2.2) BorderWidth Dùng để quy đònh độ dày của đường thẳng. 6.2.3) BorderStyle Dùng để quy đònh kiểu đường thẳng. Nó có thể là các giá trò như sau: 0 Transparent Khi đặt BorderStyle kiểu này, đường thẳng không nhìn thấy được trên Form. 1 Soild Kiểu đường liền nét. 2 Dash Kiểu đường gạch đứt khúc. 3 Dot Kiểu dường gạch chấm chấm. 4 Dash-Dot Kiểu đường gạch và chấm xen kẽ nhau. 5 Dash-Dot-Dot Kiểu đường một gạch, hai chấm xen kẽ nhau. 6 Inside Soild Kiểu đường liền nét. Các kiểu từ 2 đến 5 chỉ có tác dụng khi BorderWidth = 1. Ý nghóa của property này giống như property DrawStyle bạn từng dùng trên Form và PictureBox. 6.2.1) Property X1, X2, Y1, Y2 Bốn property này dùng để xác đònh tọa độ của đường thẳng trên form hay trên đối tượng chứa đường thẳng. Đơn vò tính của nó tùy thuộc vào đơn vò đang chọn hiện thời của vật chứa. 6.2.2) DrawMode ∼6∼ Dùng để quy đònh mode đường thẳng. Thông thường là giá trò 13 – Copy Pen. 7) Đối tượng SHAPE 7.1) Chức năng Giống như đối tượng Line, đối tượng Shape cũng được dùng để trình bày form. Nó dùng để thể hiện một hình chữ nhật, hình vuông, hình elip, hình tròn,…trên form thay vì phải dùng các method đồ họa để vẽ ra các hình này. 7.2) Các thuộc tính 7.2.1) Shape Dùng để quy đònh hình dáng của Shape.nó có thể là một trong các giá trò sau: 0 Rectangle Hình chữ nhật. 1 Square Hình vuông. 2 Oval Hình elipse. 3 Circle Hình tròn. 4 Round Rectangle Hình chữ nhật tròn góc. 5 Round Square Hình vuông tròn góc. 7.2.1) FillStyle Property này dùng để quy đònh kiểu tô bên trong của hình. Các giá trò và ý nghóa của nó cũng giống như property FillStyle của Form mà bạn đã biết. Nếu FillStyle đặt bằng 1 (Transparent) Hình sẽ không tô bên trong mà chỉ có đường viền bên ngoài. 7.2.2) FillColor Quy đònh màu tô bên trong của hình. Property này chỉ có tác dụng khi bạn đặt FillStyle khác Transparent. 7.2.3) BorderColor Quy đònh màu đường viền. 7.2.4) BorderStyle Quy đònh đường viền của hình, giống như BorderStyle của đối tượng Line. 7.2.5) BorderWith Quy đònh độ dày nét của đường viền. 7.2.6) BackStyle Property này dùng để quy đònh kiểu nền của hình. Nó có thể là một trong hai giá trò sau: 0. Transparent. Không có phần nền. 1. Opaque. Có phần nền. 7.2.7) BackColor Quy đònh màu của phần nền khi đặt BackStyle là Opaque. 8) Đối tượng CommandButton Chúng ta tìm hiểu thêm một số thuộc tính quan trọng của đối tượng CommandButton. ∼7∼ Thông thường khi bạn tạo ra một form gồm có nhiều đối tượng và các nút bấm (CommandButton) là để người sử dụng trả lời, xác nhận một cái gì đó. Vì vậy các form này đóng vai trò giống như một dialog box. Trên một dialog thường có hai nút OK vàCancel, khi chọn OK tức là chấp nhận và Cancel tức là bỏ . Người ta vẫn thường cho phép chọn hai nút này bằng hai phím tương đương là Enter ứng với OK và ESC ứng với Cancel . Khi bạn tạo một CommandButton trên form của bạn, bạn cũng có thể quy đònh nút nào tương đương Enter và nút nào tương đương với ESC bằng các property sau: 8.1) Thuộc tính Default Đây là một giá trò luận lý. Nếu đặt bằng True tức quy đònh: → Nút bấm này mặc nhiên có focus khi form xuất hiện. → Khi nhấn phím Enter tại bất cứ đối tượng nào đang có focus trên form cũng tương đương với click vào nút này. 8.2) Thuộc tính Cancel Nếu đặt bằng True tức quy đònh khi bấm phím ESC cũng tương đương với nhấn vào nút này.  Chú ý: Trên một form chỉ có duy nhất một nút có Default = True và một nút có Cancel = True. 9) Quy đònh TabStop trên các đối tượng Khi trên một form có nhiều đối tượng, bạn thường muốn có thể dùng phím Tab để chuyển focus lần lượt đến từng đối tượng trên form đó. Bạn cần sử dụng 2 thuộc tính sau: 9.1) TabStop Khi thiết kế form, nếu bạn muốn các đối tượng nào có thể nhận focus khi bạn nhấn Tab như vậy bạn hãy đặt property TabStop của nó bằng True. 9.2) TabIndex Khi form thực hiện, mỗi khi bạn nhấn Tab, nó sẽ tự động chuyển focus đến đối tượng kế tiếp mà có TabStop = True. → Trong trường hợp mặc nhiên, thứ tự trước sau của TabStop đúng theo trình tự như khi bạn tạo các đối tượng. Tức là đối tượng nào tạo trước, khi nhấn phím Tab, focus sẽ chuyển đến cái đó trước, cái nào tạo sau thì chuyển đến sau. → Nhưng bạn có thể quy đònh lại trình tự này bằng property TabIndex của các đối tượng. • Property TabIndex của các đối tượng nhận một giá trò số duy nhất để quy đònh thứ tự của nó trên form. Bắt đầu từ số 0 • Ví dụ : bạn muốn một đối tượng là cái đầu tiên trong thứ tự TabStop, đặt TabIndex của nó bằng 0, rồi cái kế tiếp bằng 1, … • Không được phép đặt TabIndex của hai đối tượng giống nhau.  Chú ý: trong chương 7, bạn đã học method SetFocus cho một đối tượng. Cần phân biệt cách chuyển focus cho đối tượng trong 2 trường hợp sau: a) Khi thiết kế giao diện, bạn sử dụng 2 thuộc tính TabStop và TabIndex để quy đònh các đối tượng nào được lấy focus, và trật tự chuyển focus cho các đối tượng này. b) Khi chạy chương trình, có những tình huống cần thay đổi trật tự chuyển focus này tạm thời, bạn sử dụng method SetFocus đểâ viết mã lệnh thực hiện điều này. ∼8∼ Ví dụ: trong chương trình tính hình chữ nhật, cần nhập giá trò số cho các cạnh hình chữ nhật. Yêu cầu là khi nhập xong mỗi cạnh thì nhấn phím Enter, focus sẽ tự động chuyển sang ô nhập cạnh khác. Nhưng nếu nhập sai (Ví dụ nhập chữ , không phải là số), thì bắt nhập lại, tức là focus vẫn nằm ở ô phải nhập lại, không chuyển focus theo trật tự cũ. Tóm tắt chương 9 1.Mảng 1. Khai báo mảng Dim / Private / Public / Static Tên mảng (số phần tử ) As Kiểu dữ liệu hoặc Dim Tên mảng ( chỉ số đầu To chỉ số cuối ) As Kiểu dữ liệu 1. Lệnh Option Base dùng để quy đònh chỉ số mặc nhiên đầu tiên của mảng. 2. Các đối tượng khi tạo thành một mảng, các thủ tục xử lý sự kiện xảy ra trên các phần tử của mảng là dùng chung và có thêm tham số Index để cho biết sự kiện đó xảy ra trên phần tử thứ mấy trong mảng. 2. Đối tượng Timer dùng để sinh ra các biến cố thời gian Các property của Timer Enabled Index Interval Left Name Parent Tag Top Timer không có các method 3. Đối tượng Frame dùng để nhóm các control, thường là các OptionButton Appearance BackColor BorderStyle Caption ClipControls Container DragIcon DragMode Enabled Font FontBold FontItalic FontName FontSize FontStrikethru FontUnderline ForeColor Height HelpContextID hWnd Index Left MouseIcon MousePointer Name OLEDropMode Parent TabIndex Tag ToolTipText Top Visible WhatsThisHelpID Width Các method của Frame ∼9∼ Drag Move OLEDrag Refresh ShowWhatsThis Zorder 4. Đối tượng OptionButton là control dùng để cho chọn lựa một cái gì đó trong nhiều cái được đưa ra. Các property của OptionButton Alignment Appearance BackColor Caption Container DisablePicture DownPicture DragIcon DragMode Enabled Font FontBold FontItalic FontName FontSize FontStrikethru FontUnder line ForeColor Height HelpContextID hWnd Index Left MaskColor MouseIcon MousePointer Name OLEDropMouse Parent Picture Style TabIndex TabStop Tag ToolTipText Top UseMaskColor Value Visible WhatsThisHelpID Width Các method của OptionButton Drag Move OLEDrag Refresh SetFocus ShowWhatsThis ZOrder 5. Đối tượng CommandButton Các property của CommandButton Appearance BackColor Cancel Caption Container Default DisabledPicture DownPicture DragIcon DragMode Enabled Font FontBold FontItalic FontName FontSize FontStrikethru FontUnderline Height HelpContextID hWnd Index Left MaskColor MouseIcon MousePointer Name OLEDropMode Parent Picture Style TabIndex TabStop Tag ToolTipText Top UseMaskColor Value Visible WhatsThisHelpID Width Các method của CommandButton Drag Move OLEDrag Refresh SetFocus ShowWhatsThis Zorder ∼10∼ . tượng mới trên form, nếu bạn đặt tên cho nó trùng với tên của một đối tượng có sẵn trên form, Visual Basic sẽ hiện ra hộp thông báo có sau: Thông báo này cho bạn biết rằng trên form hiện thời đã. cho mỗi đối tượng trong mảng bằng property Index của chúng. → Trong trường hợp mặc nhiên, Visual Basic đặt giá trò chi Index theo thứ tự bạn tạo các đối tượng trong mảng.  Thủ tục xử lý mảng Khi. 2 thuộc tính sau: 9. 1) TabStop Khi thiết kế form, nếu bạn muốn các đối tượng nào có thể nhận focus khi bạn nhấn Tab như vậy bạn hãy đặt property TabStop của nó bằng True. 9. 2) TabIndex Khi

Ngày đăng: 25/07/2014, 13:21

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan