Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
239,6 KB
Nội dung
Những câu hỏi nhỏ (phan 1) Những câu hỏi nhỏ (phan 1) Bởi: Khoa CNTT ĐHSP KT Hưng Yên Những câu hỏi nhỏ Sau số câu hỏi nhỏ bạn tôi, bạn dùng chúng để tô điểm thêm cho ứng dụng Visual Basic Đây điều cao siêu, lạ lẵm cách giải thích tối ưu giúp hiểu thấu đáo số vấn đề Hy vọng sau đọc xong bạn "à ! " Làm để có dòng chữ chạy liên tục hình ? Thật chuyện dễ hiểu, bạn cần cắt chữ đầu đoạn văn gắn vào cuối đoạn văn bản, làm liên tục tạo cho người dùng có cảm giác dòng chữ chạy Bạn mở form mới, tạo textbox (Text1), gán dòng văn vào thuộc tính text textbox, tạo timer (timer1) Khi form load khởi động Timer với trị Interval = 100 Private Sub Form_Load() Timer1.Interval = 100End Sub Và timer xử lý lệnh theo yêu cầu bạn phát sinh kiện thời gian.Private Sub Timer1_Timer() Dim x As String Dim y As String'gán x = ký tự đầu dòng văn x = Left(Text1.Text, 1)'gán y phần lại y = Right(Text1.Text, Len(Text1.Text) - 1)'Hiển thị trở lại textbox theo thứ tự ngược lại Text1.Text = y + xEnd Sub Bạn thay textbox labelbox để người dùng can thiệp vào dòng văn chạy, lúc bạn phải thay đổi thuộc tính caption thay text textbox Canh form hình hiển thị ? Chỉ việc thêm đính lệnh vào thủ tục tình FormLoad form tương ứng Me.Move (Screen.Width - Me.Width)\2, Screen.Height.Height - Me.Height)\2 1/12 Những câu hỏi nhỏ (phan 1) Làm để tạo hiệu ứng 3D ? Bạn mở form trống, tạo image, vẻ đối tượng Line Khảo sát tình MouseMove Image, rê mouse Image đối tượng line hiển thị xung quanh Image Còn 3D ? Bạn việc cho line cạnh phải màu đen (Line1, Line2), line cạnh trái màu trắng (Line3, Line4) Form thiết kế Khi di chuyển Mouse form, chuyện bình thường, đối tượng Line không xuất (thuộc tính Visible=False) Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Line1.Visible = False Line2.Visible = False Line3.Visible = False Line4.Visible = FalseEnd Sub Khi di chuyển mouse đối tượng Image, line xếp xung quanh hiển thị lại cách thay đổi thuộc tính X1, Y1, X2, Y2 line Nhờ có màu sắc thích hợp nên ta có cảm giác Image lên rê mouse đến Khi rê mouse đến Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)'Cạnh Phải Line1.X1 = Image1.Left + Image1.Width Line1.Y1 = Image1.Top Line1.X2 = Image1.Left + Image1.Width Line1.Y2 = Image1.Top + Image1.Height'Cạnh Line2.X1 = Image1.Left Line2.Y1 = Image1.Top + Image1.Height Line2.X2 = Image1.Left + Image1.Width Line2.Y2 = Image1.Top + Image1.Height'Cạnh trái Line3.X1 = Image1.Left Line3.Y1 = Image1.Top Line3.X2 = Image1.Left Line3.Y2 = Image1.Top + Image1.Height'Phía Line4.X1 = Image1.Left Line4.Y1 = Image1.Top Line4.X2 = Image1.Left + 2/12 Những câu hỏi nhỏ (phan 1) Image1.Width Line4.Y2 = Image1.Top'Cho lại đối tượng Line Line1.Visible = True Line2.Visible = True Line3.Visible = True Line4.Visible = TrueEnd Sub Khi nhấn Mouse Image, kiện MouseDown (nhấn mouse) phát sinh đảo màu đối tượng line tạo cảm giác Image bị lõm xuống Và nhấn mouse Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Line1.BorderColor = QBColor(7) 'Màu trắng Line2.BorderColor = QBColor(7) Line3.BorderColor = QBColor(0) 'Màu đen Line4.BorderColor = QBColor(0)End Sub Sau nhấn, thả mouse làm phát sinh kiện MouseUp, lệnh cần xử lý kiện trả màu sắc lại ban đầu Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Line1.BorderColor = QBColor(0) Line2.BorderColor = QBColor(0) Line3.BorderColor = QBColor(7) Line4.BorderColor = QBColor(7)End Sub Thấy cực khổ bạn ? Custom Control Visual Basic 5.0 Khi viết ứng dụng VB không sử dụng thêm Custom Control Control chuẩn VB Sau dịch thành file EXE, muốn chép sang máy khác bạn phải chép kèm theo file thư viện chuẩn VB nằm thư mục System MSVBVM50.DLL (1.355.776 bytes) CTL3D32.DLL (45.056 bytes) Đây file thư viện cần thiết cho ứng dụng viết Visual Basic Bởi có nhiều file chương trình EXE bạn vài ba chục Kb mà phải vác theo file bất tiện, nhiên bạn nén chúng lại cho nhỏ bớt, thử sau nén 655.557 bytes thay 1.400.832 bytes lúc đầu 3/12 Những câu hỏi nhỏ (phan 1) Còn ứng dụng bạn có xài thêm Custom Control nên lưu ý phải chép thêm file tương ứng, có đem qua máy khác chương trình bạn chạy Khi bạn chọn Custom Control hộp thoại Components file tương ứng hiển thị phần Location, bạn vào mà tìm chép cho Các file thường có phần mở rộng DLL hay OCX nằm thư mục System (có thể mở Visual C++) Hãy chép chúng vào thư mục Windows, System, thư mục đặt đường dẫn PATH, hay cho chung vào thư mục với file EXE máy cần chạy chương trình bạn Có thể dùng chương trình tạo đĩa Setup định cho chúng chép thêm file này, ví dụ Create Install chẳng hạn Đồng thời có trình Setup, chương trình bạn trông đàng hoàng chuyên nghiệp (có thể tin cậy được) Phiên ứng dụng Visual Basic Khi bạn viết chương trình Visual Basic, ứng dụng bạn xuất đối tượng tên App, thuộc tính đối tượng App có thuộc tính 4/12 Những câu hỏi nhỏ (phan 1) lưu giữ số phiên (Version) Ta dễ dàng truy cập thuộc tính để biết version chương trình App.Major: Con số App.Minor: Con số phụ App.Revision: Con số cho biết số lần bạn hiệu chỉnh dịch lại chương trình Bạn dùng Msgbox để thể Version chương trình: Msgbox "Version: " & App.Major & "." & App.Minor & App.Revision Tuy nhiên bạn số Revision tự động tăng lần dịch chương trình, vào Project \ Properties, chọn tab Make click chọn mục Auto Increment khung Version Number Hoặc cho chương trình thể phiên lên Caption Form Load Private Sub Form_Load() Me.Caption = Me.Caption & " - Ver " & App.Major & "." & App.Minor & App.RevisionEnd Sub 5/12 Những câu hỏi nhỏ (phan 1) Tạo hình Splash Screen Bạn có để ý khởi động Visual Basic không ? Ttrước chương trình Visual Basic khởi động thường có khung sau chốc lát lại biến VB sẵn sàng cho bạn làm việc Không Visual Basic không đâu, tất phần mềm có hình Khung ta gọi hình Splash Screen, cho hiển thị lúc khởi động nhằm tránh cho người dùng đỡ sốt ruột chương trình nạp liệu thực lệnh cần thiết, thông báo vấn đề quyền, phiên bản, logo Khi chương trình sẵn sàng làm việc hình tự động biến Trong VB hình Splash thật Form không hiển thị tiêu đề, nạp lên hình từ thủ tục tình FormLoad form chương trình (thường Form - form luôn dịch suốt trình làm việc) Private Sub Form_Load() Me.ShowfrmSplash.ShowDoEvents Unload frmSplash End Sub 6/12 Những câu hỏi nhỏ (phan 1) Me.Show: bắt chương trình vẽ form lên hình Bạn ghi Show lệnh Show tác động lên form hành không dược rõ đối tượng frmSplash.Show: Cho hiển thị hình Splash (bạn lưu ý: lúc frmSplash chưa lên gọi) DoEvents: Chờ cho Windows hiển thị hoàn tất frmSplash lên hình Sau lệnh DoEvents tập hợp lệnh cần xử lý chương trình khởi động Cuối lệnh Unload frmSplash có tác dụng đóng hình Splash Screen lại Lúc chương trình sẵn sàng cho người dùng Ngôn ngữ lập trình Visual Basic ngày trở nên phổ biến, nhiều người quan tâm tới Trong vòng năm trở lại bắt đầu xuất nhiều sách viết ngôn ngữ tạo điều kiện cho tìm hiểu, theo dự đoán vài năm tới thông dụng Word, Excel Cách thức lập trình ngôn ngữ gần gũi với Windows (bạn hiểu Windows sâu sắc lập trình ngôn ngữ này) Nếu bạn học Microsoft Access đừng nên bỏ qua ngôn ngữ lập trình "thần tốc" Mặc dù chương trình viết chạy không hiệu ngôn ngữ khác với bạn tạo ứng dụng Windows nhanh dễ dàng "nấu gói mì ăn liền" lúc vấn đề hiệu tạm cho qua Nếu bạn muốn tìm hiểu Visual Basic nên chọn "Tự học lập trình Visual Basic 5" tác giả Phạm Thùy Nhân, chịu khó tìm sách Samis, chí lúc xem sách thấy có ghi là: "chưa biết gì, đọc sách, gấp sách lại, thành chuyên gia" Tự tạo Progress Bar cho ứng dụng Visual Basic [Combo box tự danh sách] [Form Layout] Nếu bạn dùng phiên Enterprise - 32bit Visual Basic, có sẵn Custom control cho phép bạn tạo nhanh Progress bar theo mốt Windows 9.x trông đơn sơ chuẩn mực 7/12 Những câu hỏi nhỏ (phan 1) Còn xin trình bày cách tự chế Progress bar control chuẩn Visual Basic (Picture box), cách đặc biệt hữu ích cho bạn dùng phiên vb 16bit hay không muốn vác theo file COMCTL.OCX (MSCOMCTL.OCX) kích thước 1Mb kèm theo ứng dụng Bạn tạo Picture box lồng vào nhau, di chuyển vị trí Picture box bên trong, chọn màu sắc cho thích hợp Còn để chạy ? bạn tăng (hoặc giãm) độ rộng Picture box bên trong, cực đại độ rộng Picture box bên = bên ngoài, cực tiểu độ rộng Picture box bên = Phía đồ xịn, phía hàng tự chế Bạn thấy không ngang ngữa bộ, hàng tự tạo cho phép thay đổi màu sắc cách vô tư, muốn xanh đỏ tím vàng cả, khả đồ xịn khó thực không muốn nói không Để minh họa dùng Timer (Timer1) Picture box (Picture1 Picture2), Picture2 màu xanh nằm Picture1 màu xám Cùng với đoạn mã sau: Option Explicit Private Sub Form_Load() Picture2.Width = 0Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() If Picture2.Width < Picture1.Width Then Picture2.Width = Picture2.Width + Picture1.Width \ 20 Else Timer1.Interval = 0MsgBox "Đã 20 giây trôi qua !"End 8/12 Những câu hỏi nhỏ (phan 1) End If End Sub Khi chạy thử chương trình bạn thấy Progress bar thay đổi giây lần, hết 20 giây, thông báo hàm MsgBox bạn click OK goodbye bạn Làm để combo box tự động danh sách nhận focus, mà không cần người dùng click chuột ? [Tự tạo Progress bar] [Form Layout] Combo box dễ thấy thảo trình hộp chọn font hình Để làm việc này, bạn cần nhớ lại tổ hợp phím tắt để mở combo box Windows ALT - DownArrow (Mũi tên xuống) Do ta cần cho combo box nhận tổ hợp phím ALT + DownArrow êm chuyện Rất dễ dàng bạn cho lệnh Sendkeys gởi tổ hợp phím ALT - DownArrow từ thủ tục tình GotFocus Combo box cần mở Hãy tạo form tạo control ví dụ CommandButton, bạn tạo Combo box Lý bạn phải tạo Command button trước có focus trước (TabIndex = 0), chạy chương trình bạn nhấn phím Tab để chuyển focus sang cho combo box, lúc bạn thấy rõ tác dụng lệnh SendKeys Private Sub Combo1_GotFocus() 9/12 Những câu hỏi nhỏ (phan 1) SendKeys "%{DOWN}" End Sub Câu lệnh SendKeys "%{DOWN}" dùng để gởi tổ hợp phím ALT - DownArrow lên Combo box nhận Focus người sử dụng dịch chuyển phím Tab hay Mouse Sẽ làm cho combo box tự động mở (hiện danh sách) Thủ thuật hữu ích bạn viết ứng dụng có yêu cầu nhập liệu, thường người dùng nhập liệu bàn phím, sau nhấn phím Tab đến combo box, bung để người dùng chọn lựa, tiện dụng, khiến cho người ta cảm thấy hài lòng chương trình Cửa sổ Form Layout dùng để làm ? [Tự tạo Progress bar] [Combo box tự danh sách] Đây tính Visual Basic & 6, giúp cho lập trình viên dễ dàng phân bố form hình chương trình thực thi cách trực quan Vào View \ Form Layout Windows, hay click vào Icon toolbar để hiển thị cửa sổ Form Layout chưa xuất 10/12 Những câu hỏi nhỏ (phan 1) Để sử dụng chức cửa sổ này, bạn right click cửa sổ để bật menu Popup gồm mục chọn sau: Resolution Guides: Hiển thị độ phân giải hình (chỉ hiển thị độ phân giải thấp độ phân giải mà hình sử dụng) Dockable: Hiển thị Form Layout cửa sổ riêng hay nằm chung với cửa sổ Project, Properties Hide: đóng cửa sổ Form Layout Startup Position: Vị trí form hiển thị hình Manual: Tự bạn thiết lập, cách rê form có tên tương ứng, dựa vào Resolution Guides để biết rõ vị trí form xuất hình chạy chương trình Center Owner: Nằm form gọi Center Screen: Nằm hình độ phân giải Windows Default: Theo chuẩn Windows, nằm chệch góc trái hình 11/12 Những câu hỏi nhỏ (phan 1) Mỗi form giai đoạn thiết kế, muốn hiển thị cửa sổ Form Layout bạn phải mở form lên, xuất cửa sổ Form Layout tên tương ứng, vị trí thực xuất hình lúc chạy phản ảnh xác cửa sổ Xưa người ta có quan niệm ngôn ngữ lập trình Visual Basic "bị yếu" ngôn ngữ khác hàm, thủ tục can thiệp đến thông tin cấp thấp hệ thống ngôn ngữ C Nhưng Visual Basic bù vào thiếu hụt đáng tiếc cách liên kết sử dụng hàm API (Application Programmer's Interface) có sẵn Windows qua câu lệnh Declare Giúp cho ta làm khối việc tưởng chừng vô vọng Thật hàm API tạo ngôn ngữ C ta tận dụng khả C Visual Basic Các hàm API tồn dạng file có phần mở rộng DLL hay EXE thư mục System Ơở viết sau tìm hiểu API tuyệt vời Một ứng dùng Visual Basic viết đàng hoàng, chạy ngon lành đố nhìn mà biết bạn viết ngôn ngữ (bạn lưu ý cho người ta nhìn nhé) 12/12 [...].. .Những câu hỏi nhỏ (phan 1) Để sử dụng các chức năng trên cửa sổ này, bạn hãy right click trên cửa sổ để bật menu Popup gồm các mục chọn sau: Resolution Guides: Hiển thị độ phân giải màn hình (chỉ hiển thị các độ phân... Center Owner: Nằm giữa form đã gọi nó Center Screen: Nằm giữa màn hình ở bất kỳ độ phân giải nào Windows Default: Theo chuẩn của Windows, nằm hơi chệch về góc trái trên của màn hình 11/12 Những câu hỏi nhỏ (phan 1) Mỗi form trong giai đoạn thiết kế, muốn hiển thị trên cửa sổ Form Layout bạn phải mở form đó lên, nó sẽ xuất hiện trên cửa sổ Form Layout bằng tên tương ứng, vị trí thực của nó sẽ xuất hiện... hệ thống như ngôn ngữ C Nhưng cũng chính Visual Basic đã bù vào sự thiếu hụt đáng tiếc của mình bằng cách liên kết và sử dụng các hàm API (Application Programmer's Interface) có sẵn trong Windows qua câu lệnh Declare Giúp cho ta làm được khối việc tưởng chừng như vô vọng Thật ra các hàm API này được tạo ra bằng ngôn ngữ C do đó ta có thể tận dụng được các khả năng của C trong Visual Basic Các hàm API ... vác theo file bất tiện, nhiên bạn nén chúng lại cho nhỏ bớt, thử sau nén 655.557 bytes thay 1.400.832 bytes lúc đầu 3/12 Những câu hỏi nhỏ (phan 1) Còn ứng dụng bạn có xài thêm Custom Control nên... bạn thấy rõ tác dụng lệnh SendKeys Private Sub Combo1_GotFocus() 9/12 Những câu hỏi nhỏ (phan 1) SendKeys "%{DOWN}" End Sub Câu lệnh SendKeys "%{DOWN}" dùng để gởi tổ hợp phím ALT - DownArrow lên.. .Những câu hỏi nhỏ (phan 1) Làm để tạo hiệu ứng 3D ? Bạn mở form trống, tạo image, vẻ đối tượng Line Khảo sát