|
NHỮNG CÂU HỎI VỀ VB
(Kỳ 12)
1. Cắt bớt các khoảng trống trong chuỗi
Khi gõ văn bản hoặc
nhập liệu, không phải người dùng nào cũng "tốt lành" mà gõ chính xác
từng câu chữ, và đặc biệt là các khoảng trống (space). Có khi trong
1 chương trình, nếu thừa một khoảng trống sẽ dẫn đến lỗi nghiêm
trọng khiếng chương trình treo ... "tòng teng". Để tránh rắc rối đó,
ta cần viết một Module có nhiệm vụ rà soát trong chuỗi, hễ thấy chỗ
nào thừa khoảng trống thì bỏ ngay, sau đó mới đưa chuỗi đã xử lý
xong cho chương trình thực hiện công việc chính. Có thế chương trình
hoạt động mới trơn tru.
Hàm sau đây sẽ làm
nhiệm vụ:
- Thay thế nơi nào có
nhiều khoảng trống trong chuỗi thành 1 khoảng trống duy nhất.
- Xoá bỏ luôn các
khoảng trống ở đầu hoặc cuối chuỗi.
Private Function
PreventDuplicateSpaces(Word)
Dim i, WordLength,
Character, LastCharacter, NewWord
On Error GoTo
ErrorHandler
WordLength =
Len(Word)
For i = 1 To
WordLength
Character =
Mid(Word, i, 1)
If LastCharacter =
" " And Character = " " Then
Else
NewWord = NewWord
& Character
LastCharacter =
Character
End If
Next i
PreventDuplicateSpaces = Trim(NewWord)
Exit Function
ErrorHandler:
' Chèn code cần xử lý
khi xuất hiện lỗi.
End Function
Lưu ý:
Đây chỉ là 1 cách để
minh hoạ (mức độ hiệu quả trung bình), bạn có thể tự viết hàm cho
riêng mình, hoặc mở rộng hàm trên làm thêm 1 số chức năng khác.
^Top
2. Vô hiệu (Disable) tất cả các Control trên
Form

Dim i As Integer
For i = 0 To
Form1.Controls.Count - 1
Form1.Controls(i).Enabled = False
Next i
Dòng code trên sẽ làm
cho tất cả các loại Control (kể cả menu) trên Form bị vô hiệu (thuộc
tính Enable = False).

Thật tuyệt vời phải
không bạn. Rất nhanh & cực kỳ gọn, nhưng bạn phải thận trọng khi sử
dụng nhé. Như vậy việc cho Enable lại các đối tượng trên Form cũng
rất là dễ phải không ?
^Top
3. Giữ cho TextBox luôn bị cuộn xuống cuối văn
bản
Khi số dòng hoặc chiều
dài của văn bản lớn hơn phạm vi "thấy được" của Textbox. Lúc này nếu
bạn có nhu cầu luôn giữ cho Textbox hiển thị các dòng cuối văn bản,
hãy dùng mẹo sau:
Text1.SelStart =
Len(Text1.Text)
Áp đặt thuộc tính
SelStart của Textbox là chiều dài của văn bản đang chứa. Hãy triệu
gọi dòng code trên bất cứ khi nào bạn cập nhật hoặc thay đổi nội
dung của Textbox.
Để dễ hiểu, chúng ta sẽ
cùng làm một thí dụ đơn giản sau:

- Hãy tạo một Project
mới, trên Form1 có 2 Textbox (Name: Text1, & Text2) & 1 Command
Button (Name: Command1).
- Đặt thuộc tính của
Text1: MultiLine = True; ScrollBars = 2-Vertical
- Các control còn lại
hãy giữ nguyên:
- Đặt vài dòng code vào
Form:
Private Sub
Command1_Click()
' Nối dòng văn bản
trong Text2 vào cuối Text1 (có ghép thêm ký tự xuống dòng vbCrLf -
bạn có thể dùng chr(13) & chr(10) )
Text1 = Text1 &
vbCrLf & Text2
End Sub
Private Sub
Text1_Change()
'Cuộn Textbox khi
có sự thay đổi
Text1.SelStart =
Len(Text1)
End Sub
Còn cách thử như thế
nào ư ? Quá dễ, hãy gõ gì đó vào Text2, nhấn Command1, dòng Text sẽ
được cập nhật lên Text1, cứ thế từ dòng thứ tư trở đi bạn sẽ thấy
ngay điều cần thấy.

Kể từ dòng thứ tư trở
đi Text1 luôn được cuộn xuống phía dưới để người dùng có thể xem
được thông tin vừa mới cập nhật.

Trên thực tế bạn chớ có
đặt dòng
Text1.SelStart = Len(Text1)
vào tình huống Change
của Textbox, vì nó sẽ làm cho bạn khó khăn khi định vị Cursor và sửa
đổi ở một chỗ khác trong TextBox. Hãy sáng tạo & đặt vào những chỗ
(lúc) thích hợp.
^Top
4. Đặt Picture vào Status Bar (thanh trạng
thái)
Thanh trạng thái là một
trong những đối tượng chuẩn mực có hầu hết trong các chương trình
chuyên nghiệp. Thanh trạng thái có nhiệm vụ hướng dẫn cho người dùng
bằng những giải thích ngắn gọn.
Click phải chuột lên
đối tượng Status Bar, chọn mục Properties trong menu tắt. Click chọn
thẻ Panels. Và thêm vào một panel mới. Trong khung Picture, click
nút Browse, sau đó hãy chọn một bức ảnh mà bạn thích.
Xem hình
minh hoạ

Các Format mà VB hỗ trợ
là:
-
Bimaps
-
Icons & Cursors
-
GIF Images
-
JPEG Images
Tuy nhiên bạn nên dùng
những bức ảnh nhỏ cho phù hợp với thanh Status.
^Top
5. Đặt Default Folder cho Visual Basic 5/6
Có khi nào bạn cảm thấy
rất bực mình vì mỗi khi phát lệnh Save trong VB nó lại cho vào thư
mục cài VB không ? Riêng tôi, bực mình lắm, tôi không bao giờ lưu dữ
liệu trên cùng 1 ổ dĩa với các chương trình Windows cả, thiệt phát
khùng mỗi khi phải làm cái thao tác chuyển đổi thư mục nhàm cháng
ấy. Tôi cố gắng tìm kiếm để thay đổi thư mục mỗi khi phát lệnh Save.
Nhưng vô cùng thất vọng, chẳng có ở bất kỳ một Version của nào cả.
Tuy nhiên nhờ Windows
nên tôi có thể giải quyết được vấn đề này khá dễ dàng. Nếu đang sử
dụng Windows từ 98 trở đi bạn có thể làm nhanh như sau:
- Click phải chuột lên
Shortcut của VB trong menu Programs, chọn Properties.
Xem hình
minh hoạ
- Sau đó bạn sẽ được
hộp thoại Properties. Chú ý phần Start in chứa thư mục mặc định lúc
ta cài VB.
Xem hình
minh hoạ

- Vậy muốn như ý hãy
đổi thư mục trong Start in lại như bạn muốn: Giả sử tôi đổi thành:
H:\MYDOC\VBSOFT vậy là từ đây khi phát lịnh Save trong VB tôi sẽ
được toại nguyện.
Xem hình
minh hoạ

Bạn thấy đó một tình
huống khá đơn giản, nếu không biết ta sẽ tốn rất nhiều thời gian.
Tương tự như vậy, nếu bạn khởi động VB từ một Shortcut khác (ví dụ
như trên Desktop) thì bạn vẫn làm y như vậy.
 |