1. Trang chủ
  2. » Giáo án - Bài giảng

Lập trình

11 262 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 264,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhng nếu bạn là ngời chuyên ráp máy hay một cửa hàng tin học thì có lẻ bạn nên viết 1 chơng trình tự động chạy lúc khởi động Start Up để trng bày các phần mềm đã cài đặt trên máy, luôn t

Trang 1

Xây dựng chơng trình để khởi động các chơng trình khác

Nhập Dẫn

Để bày vẻ và quảng cáo thêm cho máy tính có rất nhiều cách Nhng nếu bạn là ngời chuyên ráp máy hay một cửa hàng tin học thì có lẻ bạn nên viết 1 chơng trình tự động chạy lúc khởi động (Start Up) để trng bày các phần mềm đã cài đặt trên máy, luôn tiện giới thiệu chút ít về mình hay cửa hàng Ta tạm

đặt tên cho chơng trình đầu tiên này là "Launch" nhé

Viết chơng trình, có rất nhiều ngôn ngữ lập trình d sức để viết một chơng trình nh vậy Nhng dễ dàng hơn hết, có lẻ và Visual Basic Viết chơng trình này bằng Visual Basic không đòi hỏi gì bạn nhiều, chỉ cần chút khéo léo và áp dụng các công cụ của Visual Basic một cách thích hợp cộng thêm chút ít sáng tạo mà thôi

Chơng trình Launch đã hoàn tất

Có rất nhiều cách để phân loại các phần mềm cài đặt trên máy Chơng trình thí dụ này phân nhóm các ứng dụng cài đặt trong Windows thành 3 nhóm: Windows System (các công cụ chuẩn của Windows), Applications (các ứng dụng của ngời dùng cài thêm), Vietnamese Utilities (các tiện ích về tiếng việt) Cơ chế hoạt động của chơng trình này là "mồi lửa" cho ngời sử dụng khởi động chơng trình mà mình cần bằng menu hay các button của chơng trình, sau đó chơng trình này tự động "biến"

Để mồi lửa cho ngời sử dụng, ta buộc phải biết chính xác vị trí của các file chơng trình mà ngời dùng cần

Đầu tiên là các tiện ích kèm theo Windows nh WordPad, Notepad, Paint, (tôi chỉ xin thí dụ 3 chơng trình thôi) Các file thực thi của chơng trình này chủ yếu nằm trong th mục Windows, vậy chỉ cần tìm

ra th mục Windows là ta có thể giải quyết đợc vấn đề

Chuyện này cũng rất dễ dàng và vô cùng may mắn là Windows có khả năng tự động tìm kiếm các file thực thi trong th mục Windows và Windows\System cho nên chúng ta khỏe (ta có thể hiểu là nó tự đặt dờng dẫn đến th mục Windows và Windows\System)

Chú ý: Khi muốn gọi WordPad bạn phải gọi file write.exe và Paint phải gọi file Pbrush.exe 2 file này không phải là file chơng trình chính, chúng chỉ có nhiệm vụ gọi file thực thi của Paint (MSPaint.exe)

và WordPad (WordPad.exe) nằm trong Program files\Accessories mới thực sự là file chơng trình chính Microsoft phải làm nh vậy để tơng thích với các chơng trình cũ của Windows 3.x Sau đây là tên file của một số chơng trình có sẵn trong Windows (với điều kiện bạn phải cho cài đặt khi setup Windows)

Tên file Th mục Chơng trình

Msconfig.exe System System Configuration Utility

Sysedit.exe System System Configuration Editor

Vậy là chuyện gọi 1 chơng trình của Windows không có gì khó khăn, chỉ cần biết tên file là xong, mọi chuyện còn lại là của Windows

Trang 2

Còn các ứng dụng khác do ngời dùng hay ngời lắp máy cài đặt thêm chỉ có cách là gọi theo đờng dẫn chính xác vì mỗi máy mỗi khác, công sức cho việc tìm kiếm khá gian nan, cha hợp với các tay nghiệp

d nh chúng ta Khuyết điểm của chơng trình là phải viết riêng cho từng máy, chúng ta sẽ giải quyết vấn

đề này ở bài viết sau "Nâng cấp chơng trình Launch"

Bạn cũng có thể viết chơng trình này cho chức năng Auto Run của CD chơng trình, lúc nay mọi chuyện lại càng dễ dàng vì các đờng dẫn và chơng trình trên CD đều nằm trong tay ta, cứ đi từ th mục gốc vào

là xong chuyện

Thiết kế giao diện

Khởi động Visual Basic Tôi dùng Visual Basic 5 để minh họa, các bạn có thể dùng các phiên bản khác (v4 hay v6) cũng không sao Còn nếu máy cha có phải tiến hành cài đặt, nên chọn các ấn bản

Enterprise để tận dụng sức mạnh của Visual Basic (VB) Kể từ Visual Basic 5 trở đi Microsoft chỉ phát hành version 32 bit, version 16bit cuối cùng xuất hiện ở Visual Basic 4

Vào file/ New Project, click chọn Standard EXE, click OK, bạn sẽ thấy ngay một form trống xuất hiện sẵn sàng để thiết kế

Bây giờ bạn hãy tạo các control khác trên form, vị trí các control bạn có thể tùy ý bạn hay theo mẫu minh họa, thiết đặt các thông số về thuộc tính (properties) nh sau:

form

> BorderStyle: 1- FixedSingle

> MinButton: True

> Icon: cho 1 file *.ico, *.cur để làm biểu tợng

cho chơng trình

> Caption: Launch

frmMain form chính của chơng trình

Mục đích

Command

Button Caption: Windows cmdWin Các nút nhấn để khởi động các ứng dụng tơng ứng trong

nhóm Command

Trang 3

của việc

gán thuộc

tính

BorderStyl

e: 1-

FixedSingl

e là không

cho ngời

dùng thay

đổi kích

th-ớc cửa sổ

chơng trình

trong khi

chạy

MinButton:

True, cho

phép ngời

dùng

Minimaize

chơng trình

của mình

Mặc nhiên

khi chọn

BorderStyl

e: 1-

FixedSingl

e thì 2

thuộc tính

MinButton

&

MaxButton

tự động

gán là

False

Command

Label Caption: Để trốngAlignment: 2- Center

CheckBox Caption: Unload after 20 secValue: 1-Checked chkUnload Nếu check thì sao 20 giây chơng trình tự động thoát.

PictureBoxAppearance: 0- FlatBorderStyle: 0- None

BackColor: &H00C0FFC0& picIns

Bạn nên chọn một màu nào

đó cho BackColor để dễ nhìn

Timer (giữ nguyên các thuộc tính) timer1 Phục vụ cho việc tự động

Trang 4

Bạn tự cho

kích thớc

sao cho

picIns nhỏ

hơn picOut

1 chút Và

picIns phải

nằm lọt

trong

picOut, để

có thể làm

picIns lọt

vào bên

trong bạn

làm nh sau:

Tạo

picOut,

hiệu chỉnh

kích thớc

cho hợp lý

(hình minh

họa), click

chọn

picOut, vẽ

thêm 1

picturebox

bên trong

nữa, điều

chỉnh kích

thớc và đặt

tên là

picIns Hai

PictureBox

này sẽ làm

thanh hiển

thị thời

gian khi

chơng trình

ở chế độ tự

động thoát

thoát

Tạo hệ thống các menu cho chơng trình:

Từ trình đơn Tools chọn Menu Editor hay nhấn tổ hợp phím Ctrl - E cũng có tác dụng tơng tự

Trang 5

Số lợng menu này chỉ làm ví dụ Bạn thích đa chơng trình nào vào menu thì tạo ra mục chọn menu tơng ứng Trong hộp thoại Menu Editor có các nút với công dụng nh sau:

Sau đây thuộc tính của các menu

&Windows _ Windows Explorer _

- _ Paint _ WordPad _ Notepad

mnuWin mnuWE

mnusp1

mnuPaint mnuWP mnuNotepad

&Applications _ Microsoft Word _ Microsoft Excel _ Microsoft Access _

- _ Paint Shop Pro _

- _ Visual Basic _ Visual C++

mnuApp mnuWord mnuExcel mnuAccess

mnusp2

mnuPaintPro

mnusp3

mnuVb mnuVc

&Vietnamese _ VNI Tan Ky 4 _ VietKey 4.09d _

- _ Lac Viet td _ Just click 'n' see

mnuVN mnuVNI mnuVK

mnusp4

mnuLV mnuClickSee

Chúng ta thấy có 4 menu có tên lần lợt sp1, sp2, sp3, sp4, thuộc tính Caption của nó chỉ là dấu trừ "-" Tác dụng của nó là tạo ra các đờng kẻ ngang để phân cách các mục chọn trong menu Sau khi tạo xong, bạn có các hệ thống menu nh sau

Trang 6

Giao diện sau khi tạo xong hệ thống menu Bây giờ bạn có thể chạy thử chơng trình bằng phím F5 Lúc này bạn đã thiết kế xong phần giao diện của chơng trình, kế tiếp chúng ta sẽ tiến hành viết code cho chơng trình

Viết Code cho chơng trình Launch

Viết Code cho menu

Ta chỉ cần viết code cho menu, sau đó dùng các nút lệnh để gọi menu tơng ứng

Bây giờ chúng ta viết code cho mục Windows Explorer trong menu Windows Vào Windows chọn Windows Explorer để viết code cho mục chọn menu này

Bạn gõ vào đoạn sau:

Private Sub mnuWE_Click() ' dòng này có sẵn

Trang 7

Dim P

P = Shell("explorer", vbNormalFocus)

End Sub ' dòng này có sẵn Giải thích:

* Dim P

Khai báo 1 biến kiểu variant để chứa trị trả về của hàm Shell Đây là kiểu dữ liệu bao trùm tất cả các kiểu dữ liệu trong Visual Basic

* P=Shell("explorer",vbNormalFocus)

Hàm Shell dùng để gọi một chơng trình khác thi hành

Cú pháp Shell(pathname[,windowstyle])

pathname: là đờng dẫn và file thực thi của chơng trình cần gọi Đây là 1 xâu cho nên khi viết bạn phải

đặt chúng trong cặp dấu " " mới đúng

windowstyle: là hằng số qui định phong cách khi khởi động của chơng trình cần chạy Thí dụ: sau khi gọi chơng trình bạn cần Maximize, Minimize chơng trình đó các hằng có giá trị và ý nghĩa nh sau:

VbHide 0 Window is hidden and focus is passed to the hidden window

VbNormalFocus 1 Window has focus and is restored to its original size and position VbMinimizedFocus 2 Window is displayed as an icon with focus

VbMaximizedFocus 3 Window is maximized with focus

VbNormalNoFocus 4 Window is restored to its most recent size and position The currently active window remains active.

VbMinimizedNoFoc

us 5 Window is displayed as an icon The currently active window remains active

Vậy có thể viết lại hàm Shell nh sau Shell("explorer",1) cho gọn

Lu ý: Trong phần pathname của hàm shell lý ra phải ghi đầy đủ đờng dẫn, thí dụ

"C:\Windows\Explorer.exe" (giả sử th mục windows là c:\windows) thay vì "explorer.exe" Sở dĩ ta có thể ghi gọn nh vậy là vì Windows tự động đặt dờng dẫn path đến các th mục nh: Windows;

Windows\system Do đó chỉ cần ghi explorer.exe cho tổng quát (khỏi sợ sai đờng dẫn khi đem chạy trên máy khác)

Bây giờ nhấn F5 để chạy chơng trình, vào menu Windows chọn Windows Explorer, lập tức chơng trình Windows Explorer đợc khởi động

Tơng tự nh vậy bạn có viết code cho tất cả các menu con còn lại của menu Windows

Notepad.exe (Windows/Notepad)

Write.exe (Windows/WordPad)

Pbrush.exe (Windows/Paint)

Đối với Paint và WordPad ta phải dùng 2 file write.exe & pbrush.exe trong th mục Windows để khởi

động Thực ra 2 file này chỉ có chức năng gọi WordPad.exe và MSPaint.exe (trong th mục \Program Files\Accessories\) chứ không phải là file chơng trình chính Microsoft phải làm vậy để tơng thích với các chơng trình cũ

Còn các mục chọn khác bạn cũng viết hàm Shell tơng tự nhng đờng dẫn phải cụ thể và chính xác Thí dụ để viết code cho menu "Lac Viet td" Vào VietNamese / Lac Viet td, gõ vào

Private Sub mnuLV_Click()

Dim F F=Shell("d:\tools\lvtd\lvtd.exe",1)

End Sub

Do file lvtd.exe của máy tôi nằm trong th mục d:\tools\lvtd

Trang 8

Nhấn F5 chạy thử xem có vừa ý hay không ?

Viết code cho các Command Button

Bây giờ ta viết lệnh cho các CommandButton tơng ứng Yêu cầu là viết code sao cho khi nhấn vào nút Windows thì menu Windows tơng ứng sẽ hiện ra nh hình minh họa

Vậy phải viết lệnh cho nút

+ Windows (cmdWin) gọi menu Windows (mnuWin)

+ Application (cmdApp) -> mnuApp

+ VietNamese (cmdVN) -> mnuVN

Double click vào cmdWin (hay Right click chọn View code từ menu popup), gõ vào

Private Sub cmdWin_Click()

popupmenu mnuWin

End Sub Giải thích:

popupmenu mnuWin hành vi (method) popupmenu dùng để hiển thị menu có tên mnuWin

Xem cú pháp popupmenu

Trong chơng trình ta có thể dùng hành vi (method) popupmenu để gọi một menu hiển thị, menu này phải đợc tạo trớc (menu editor) và có ít nhất 1 mục chọn con (menu thứ cấp)

Cú pháp:

object PopupMenu menuname , flags , x , y

Trong đó:

object: tên form mà trình đơn sẽ xuất hiện Nếu không ghi có nghĩa là dùng form hiện hành

menuname: tên menu cần hiển thị

flags: giá trị nguyên qui định vị trí xuất hiện của menupopup

Trang 9

Tên Hằng Giá Trị ý nghĩa

vbPopupMenuLeftAlign 0 Trị mặc định, cạnh trái của trình đơn sẽ ở vị trí x

vbPopupMenuCenterAlign 4 Trình đơn sẽ canh giữa so với vị trí x

vbPopupMenuRightAlign 8 Cạnh phải của trình đơn sẽ ở vị trí x

x,y Tọa độ trình đơn sẽ xuất hiện Nếu không ghi mặc nhiên trình đơn sẽ xuất hiện ở vị trí mouse

Tơng tự cho 2 nút lệnh còn lại Khi chạy thử chơng trình bạn click vào nút lệnh nào sẽ xuất hiện menu tơng ứng Từ đây ngời dùng có thể chọn lệnh từ menu popup hay menu pulldown (menu kéo xuống)

đều đợc

Viết lệnh cho nút Exit nh sau:

Private Sub cmdExit_Click()

End

End Sub

Làm cho chơng trình tự động thoát

Đối t ợng Timer

Đối tợng Timer

Là đối tợng dùng để xử lý các sự kiện thời gian trong Visual Basic Cách hoạt động của đối tợng: cứ sau một khoảng thời gian do ngời viết chơng trình qui định, timer sẽ tự động phát sinh 1 sự kiện thời gian

Vậy nếu chúng ta muốn sau 1 khoảng thời gian chơng trình phải tự động thi hành 1 số lệnh nào đó, ta chỉ việc sử dụng timer này và viết các lệnh cần timer thực hiện vào sự kiện thời gian đó

Các thuộc tính (Properties) của timer:

Enable: Có kiểu luận lý (True/False) True cho phép timer hoạt động và False sẽ làm vô hiệu timer Interval: Là giá trị nguyên, đơn vị là 1/1000 giây Đây chính là khoảng thời gian bao nhiêu lâu để timer thực hiện lệnh Nếu là 0 tơng đơng với Enable=False

Trong khi chạy chơng trình timer sẽ không hiển thị nh các đối tợng khác Chúng ta có thể thiết lập các

2 thuộc tính Enable và Interval trong khi thiết kế hay khi chạy chơng trình

Nếu đang ở chế động tự động thoát (mục Unload after 20 Sec đợc chọn) sau 20 giây chơng trình sẽ tự

động thoát, không cần chúng ta can thiệp Để làm đợc việc này ta phải dùng Timer và Picture box (picIns, picOut) đã tạo từ trớc

Sau khi chơng trình khởi động hoặc khi check vào checkbox Mỗi giây độ rộng hiện tại của picIns cộng với độ rộng của picOut/20 (vì 20 giây), cho đến khi độ rông của picIns = picOut thì dừng chơng trình Nếu không check chức năng tự động thoát không hoạt động

Chúng ta tiến hành viết code cho các đối tợng nh sau

Trang 10

Tình huống Form_Load() sẽ đợc kích hoạt khi chơng trình khởi động, timer hoạt động với trị interval =

1000 (tơng đơng 1 giây), độ rộng picIns ban đầu là 0

Private Sub Form_Load()

Timer1.Interval = 1000

PicIns.Width = 0

End Sub

Khi ngời dùng Click vào check box Nếu có chọn sẽ làm cho timer hoạt động tơng tự nh Form_Load(), nếu không chọn thì cho timer ngừng

Private Sub chkUnload_Click()

If chkUnload.Value = 1 Then

PicIns.Visible = True

Timer1.Interval = 1000

Else

Timer1.Interval = 0

PicIns.Visible = False

End If

PicIns.Width = 0

End Sub

Kiểm tra xem độ rộng picIns >= picOut hay không Nếu có, kết thúc chơng trình (End), nếu không tiếp tục tăng độ rộng picIns theo chu kỳ mỗi giây 1 lần

Private Sub Timer1_Timer()

If PicIns.Width >= PicOut.Width Then

End

Else

PicIns.Width = PicIns.Width + PicOut.Width / 20

End If

End Sub

Chạy thử chơng trình xem nó có tự động thoát không Thử click vào check box xem có hoạt động nh mong muốn cha

Tô son điểm phấn

Thêm vài lời nhắc nhỡ

Chúng ta còn sót 1 đối tợng là lblMsg (Label box) cha sử dụng đến Label box này ta dùng để in câu thông báo hớng dẫn mỗi khi ngời dùng rê Mouse qua các Command Button

Thí dụ nh: Khi rê mouse trên nút Windows thì câu thông báo sẽ là "Các ứng dụng chuẩn của Windows" chẳng hạn Để làm đợc điều này ta hãy khảo sát tình huống MouseMove của đối tợng, cụ thể là của Command Button và Form Right click vào nút Windows, chọn View code, chọn tình huống

MouseMove

Private Sub cmdWin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblMsg.Caption = "Run Windows Utilities (Accessories group)"

End Sub

Hiển thị câu thông báo Run Windows Utilities (Accessories group) trong lblMsg khi mouse di chuyển trên nút Windows Một cách tơng tự bạn có thể làm cho các button còn lại

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

lblMsg.Caption = "Please, select a program to start your work."

End Sub

Hiển thị câu thông báo Please, select a program to start your work trong lblMsg khi mouse di chuyển phía trên form

Khi chạy chơng trình, bạn thử rê mouse lên các button sẽ thấy nội dung của lblMsg thay đổi liên tục (hiển thị các câu thông báo của chính bạn)

Làm sao để form khởi động ở giữa màn hình

Ngày đăng: 11/06/2015, 02:00

Xem thêm

w