banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Lập trình VB  XML
  [Programming]   Lập trình VB 26/02/2008 00:20:02 (+0700) | #1 | 116578
jupiter29186
Member

[Minus]    0    [Plus]
Joined: 17/12/2005 12:31:58
Messages: 96
Offline
[Profile] [PM]
Mình muốn lập trình 1 bài toán trên Visual Basic 6.0 với mục đích xác định từ khóa trong 1 chuỗi nhập vào RichTextbox. Người dùng có thể nhập bất kì đoạn text nào, nhưng khi nhập vào kiểm tra thấy có từ khóa thì chương trình phải đổi màu từ khóa này....
Ví dụ:
Ta có dãy từ khóa cần xác định: select, from ...
B1: Người dùng nhập đoạn Text: select.
B2: Sau khi nhấn phím Space thì chữ select đổi theo kiểu chữ và màu chữ đã định sẵn.
B3: Các đoạn Text nhập vào tiếp theo thì có kiểu chữ và màu chữ như ban đầu. Nếu phát hiện tiếp từ khóa thì lại quy về bước 2

Kết quả mong muốn đạt được:


[Up] [Print Copy]
  [Question]   Re: Lập trình VB 26/02/2008 03:11:34 (+0700) | #2 | 116600
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Trở ngại bồ gặp chổ nào?

Một số gợi ý như sau:
- Tìm cách xác định khi nào người dùng nhập kí tự kế thúc từ (word), ví dụ space, tab, enter bằng cách chặn bắt các sự kiện sau khi control nhận được thông tin
- Định nghĩa một tập các từ khóa và màu tương ứng
- Khi nhận được một kí tự kết thúc từ, duyệt ngược để chọn từ (word) cuối cùng và định dạng màu tương ứng
Hibernating
[Up] [Print Copy]
  [Question]   Re: Lập trình VB 26/02/2008 03:47:04 (+0700) | #3 | 116611
jupiter29186
Member

[Minus]    0    [Plus]
Joined: 17/12/2005 12:31:58
Messages: 96
Offline
[Profile] [PM]
Về hướng làm thì mình đã xác định được rồi ... Nhưng còn về câu lệnh điều khiển RichTextBox thì mình còn chưa rõ lắm.....
Mình đã mầy mò tìm được đoạn code thực hiện ý định trên ... Nhưng nó chưa được đúng lắm ....

Anh em xem thử rồi fix giùm nhé !!!!

Code:
Sub SetKeyword(strKey As String, RtxtName As RichTextBox)
    With RtxtName
        FindText = InStr(1, RtxtName.Text, strKey, vbTextCompare)
        If FindText > 0 Then
            .SelStart = FindText - 1
            .SelLength = Len(strKey) - 1
            .SelBold = True
            .SelItalic = True
            .SelColor = QBColor(2)

            .SelStart = Len(.Text)
            .SelColor = vbBlack

            .SelStart = Len(.Text)
            .SelColor = vbBlack
            .SelBold = False
            .SelItalic = False
        End If
    End With
End Sub



Thanks anh em nhiều .....



[Up] [Print Copy]
  [Question]   Re: Lập trình VB 26/02/2008 03:55:11 (+0700) | #4 | 116613
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Không nên cứ tìm code có sẵn mà không hiểu gì về nó, tốt nhất bồ phải tìm hiểu cách thức nó làm việc và nhu cầu của mình.
Chưa đúng lắm là chưa đúng thế nào?
Hibernating
[Up] [Print Copy]
  [Question]   Re: Lập trình VB 26/02/2008 04:31:34 (+0700) | #5 | 116619
jupiter29186
Member

[Minus]    0    [Plus]
Joined: 17/12/2005 12:31:58
Messages: 96
Offline
[Profile] [PM]

Không nên cứ tìm code có sẵn mà không hiểu gì về nó, tốt nhất bồ phải tìm hiểu cách thức nó làm việc và nhu cầu của mình.
Chưa đúng lắm là chưa đúng thế nào?
 


Oh ...
Cái code này là do mình làm mà ....
Mình chỉ xem hướng dẫn về điều khiển RichTextBox trên mạng mà thôi ....

[Up] [Print Copy]
  [Question]   Re: Lập trình VB 26/02/2008 22:33:29 (+0700) | #6 | 116727
Vo_danh_tang
Member

[Minus]    0    [Plus]
Joined: 18/05/2007 18:34:21
Messages: 159
Offline
[Profile] [PM]
Sao bồ không thử dùng sự kiện keyup hay keydown với các giá trị tương ứng là enter(hình như là 13 á) tab, cách ... thì ngay sau khi người ta gõ phím (cách chẳng hạn) thì sẽ thấy ngay là chữ đã thay màu. Còn đoạn code trên mình không hiểu lắm
.SelStart = FindText - 1 tìm thấy, bắt ầu chọn
.SelLength = Len(strKey) - 1 độ dài đoạn chọn
.SelBold = True màu text
.SelItalic = True
.SelColor = QBColor(2)

.SelStart = Len(.Text) lại chọn, SelLength =?
.SelColor = vbBlack

.SelStart = Len(.Text) ?????? 2 dòng trên dòng này để làm gì ???????
.SelColor = vbBlack
.SelBold = False
.SelItalic = False
[Up] [Print Copy]
  [Question]   Re: Lập trình VB 28/02/2008 22:21:37 (+0700) | #7 | 117093
jupiter29186
Member

[Minus]    0    [Plus]
Joined: 17/12/2005 12:31:58
Messages: 96
Offline
[Profile] [PM]
Mình làm gần được rồi ....
Đang vướng ở mấy chỗ:
+ Mình đặt cho RichTextBox ở chế multiline (tức là ở nhiều dòng). Nhưng đoạn code chỉ đọc được các từ khóa ở dòng 1 mà ko đọc được ở dòng 2 .....


.SelStart = Len(.Text) lại chọn, SelLength =?
.SelColor = vbBlack
 


Đoạn này mình viết thừa ... Nhưng cũng ko ảnh hưởng gì đến kết quả .....


[Up] [Print Copy]
  [Question]   Re: Lập trình VB 29/02/2008 02:36:16 (+0700) | #8 | 117131
Vo_danh_tang
Member

[Minus]    0    [Plus]
Joined: 18/05/2007 18:34:21
Messages: 159
Offline
[Profile] [PM]
Bồ nên làm một vòng for có hơn không? cứ để mặc định thì nó chỉ nhảy vòng đầu thôi.
Nếu bồ đã có một CSDL về các từ đó thì theo mình nên làm kiểu load như trong IDE của VB á
[Up] [Print Copy]
  [Question]   Re: Lập trình VB 04/03/2008 02:31:16 (+0700) | #9 | 117734
jupiter29186
Member

[Minus]    0    [Plus]
Joined: 17/12/2005 12:31:58
Messages: 96
Offline
[Profile] [PM]

Bồ nên làm một vòng for có hơn không? cứ để mặc định thì nó chỉ nhảy vòng đầu thôi.
Nếu bồ đã có một CSDL về các từ đó thì theo mình nên làm kiểu load như trong IDE của VB á
 



Cho ví dụ minh họa đi bạn ơi !!!...
Thanks nhiều !!!

[Up] [Print Copy]
  [Question]   Re: Lập trình VB 04/03/2008 02:43:50 (+0700) | #10 | 117736
Vo_danh_tang
Member

[Minus]    0    [Plus]
Joined: 18/05/2007 18:34:21
Messages: 159
Offline
[Profile] [PM]
Tức là cậu để tất cả các từ đó vào một mảng rồi khi có sự kiện thì sẽ cho hiện bảng đó lên với từ bắt đầu là từ đó.
Trong cái IDE của VB thì khi cậu đánh dâu chấm thì nó load các methor phù hợp, hay như Lạc việt khi bạn gõ từ thì chữ phía dưới nó sẽ cuộn lên...
code demo thì để mình coi lại chứ máy này không có sẵn.
[Up] [Print Copy]
  [Question]   Re: Lập trình VB 06/03/2008 12:23:30 (+0700) | #11 | 118105
jupiter29186
Member

[Minus]    0    [Plus]
Joined: 17/12/2005 12:31:58
Messages: 96
Offline
[Profile] [PM]
Trăm nghe không bằng 1 thấy ...

Anh em demo cho mình xem luôn nhé ....

Thanks nhiều !!!!!!


[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|