Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
5 posters
Trang 1 trong tổng số 1 trang
Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
Chiều nay thực hành, Thầy cho làm bài ChatMulti dùng giao thức TCP. Mình đã làm thành công, có điều có hai điểm mình cần sự chia sẻ góp ý của các bạn:
1. Khi nhấn nút [ Kết nối ], ở client xuất hiện câu "Chào + tên client" để cho biết đã kết nối thành công với Server,
nhưng lúc nhấn nút [ Disconnect ], thì chương trình im ru, không có thông báo cho biết đã ngắt kết nối thành công,
nên theo mình thêm vào câu lệnh
txtReceive = "Goodbye " & txtClientName & " !"
để cải thiện thêm.
2. Vì khung gõ nội dung chat ở bên Client để gửi qua Server là TextBox, nên có thể hiện thị độ dài tùy ý, gõ nhiều dòng cũng được. Còn bên Server hiển thị theo kiểu ListBox (cũng có lý do và cái hay của nó);
Nên khi dòng quá dài, hoặc có nhiều dòng khác nhau, thì hiển thị bị lỗi! (Các bạn xem hình screenshot mình chụp lại). Có cách nào để cải thiện hay không?
--------------------------
Đây là bài của thầy (phần Server, Client, với cả chương trình hỗ trợ tạo Caption có tiếng Việt có dấu Unicode), đặc biệt dành cho những bạn nào chiều nay bận không đi thực hành được!
http://www.mediafire.com/download.php?zjoejycyinz
Bạn nào chạy không được thì tải tập tin của WinSock này MSWINSCK.OCX về, chép vào C:\WINDOWS\System32 là chạy được thôi.
http://www.mediafire.com/download.php?mtyzywjy0zd
hoặc http://www.ocxdump.com/download-ocx-files_new.php/ocxfiles/M/MSWINSCK.OCX/6.00.81694/download.html
1. Khi nhấn nút [ Kết nối ], ở client xuất hiện câu "Chào + tên client" để cho biết đã kết nối thành công với Server,
nhưng lúc nhấn nút [ Disconnect ], thì chương trình im ru, không có thông báo cho biết đã ngắt kết nối thành công,
nên theo mình thêm vào câu lệnh
txtReceive = "Goodbye " & txtClientName & " !"
để cải thiện thêm.
2. Vì khung gõ nội dung chat ở bên Client để gửi qua Server là TextBox, nên có thể hiện thị độ dài tùy ý, gõ nhiều dòng cũng được. Còn bên Server hiển thị theo kiểu ListBox (cũng có lý do và cái hay của nó);
Nên khi dòng quá dài, hoặc có nhiều dòng khác nhau, thì hiển thị bị lỗi! (Các bạn xem hình screenshot mình chụp lại). Có cách nào để cải thiện hay không?
--------------------------
Đây là bài của thầy (phần Server, Client, với cả chương trình hỗ trợ tạo Caption có tiếng Việt có dấu Unicode), đặc biệt dành cho những bạn nào chiều nay bận không đi thực hành được!
http://www.mediafire.com/download.php?zjoejycyinz
Bạn nào chạy không được thì tải tập tin của WinSock này MSWINSCK.OCX về, chép vào C:\WINDOWS\System32 là chạy được thôi.
http://www.mediafire.com/download.php?mtyzywjy0zd
hoặc http://www.ocxdump.com/download-ocx-files_new.php/ocxfiles/M/MSWINSCK.OCX/6.00.81694/download.html
nchh- Tổng số bài gửi : 90
Join date : 19/02/2009
Age : 40
Cảm ơn bạn vì phát hiện này
Chắc chắn phát hiện này của bạn sẽ giúp ích rất nhiều cho mình và các bạn khác để cùng xây dựng ứng dụng hoàn thiện hơn.Thank !
lymotonew- Tổng số bài gửi : 15
Join date : 19/10/2009
Age : 38
Đến từ : Bình Thuận
Re: Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
Theo mình biết thì control Listbox của VB không cho phép item hiển thị trên nhiều dòng (không có thuộc tính wordwrap). Chỗ này mình có thể khắc phục bằng cách: nếu độ dài của chuỗi item lớn hơn chiều dài của Listbox thì cho phép Listbox hiển thị thanh cuộn ngang (horizontal bar) để người dùng có thể kéo qua xem phần item bị khuất.
Cách hiển thị thanh cuộn ngang trên Listbox:
//---------------
// Khai báo hàm API để sử dụng (khai báo toàn cục):
Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const LB_SETHORIZONTALEXTENT = &H194
//---------------
// Thêm vào trong hàm xử lý khi dữ liệu đến của winsock
// Giả sử Listbox có tên là lstMessages
// Chuỗi cần đưa vào Listbox có tên là strData
Static x As Long
lstMessages.AddItem strData
If x < TextWidth(strData & " ") Then
x = TextWidth(strData & " ")
If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
SendMessageByNum lstMessages.hwnd, LB_SETHORIZONTALEXTENT, x, 0
End If
Mình đã test thử thành công nếu lstMessages là Listbox chuẩn của VB6, tuy nhiên, trong trường hợp bài thực hành của chúng ta, Listbox chúng ta sử dụng thuộc Microsoft Forms 2.0 Object Library, nó không hỗ trợ lấy window handle (đoạn màu đỏ ở trên)
Trường hợp chuỗi strData có nhiều dòng, mình giải quyết bằng cách thay thế ký tự xuống dòng (vbcrlf) bằng 1 ký tự khác trước khi đưa vào Listbox bằng hàm replace, ví dụ mình thay bằng khoảng trắng như sau: replace(strData,vbcrlf," ")
Bạn nào có cách giải quyết khác hơn hoặc có thể lấy được window handle của Listbox 2.0 để khắc phục lỗi trên của mình không?
Cách hiển thị thanh cuộn ngang trên Listbox:
//---------------
// Khai báo hàm API để sử dụng (khai báo toàn cục):
Private Declare Function SendMessageByNum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const LB_SETHORIZONTALEXTENT = &H194
//---------------
// Thêm vào trong hàm xử lý khi dữ liệu đến của winsock
// Giả sử Listbox có tên là lstMessages
// Chuỗi cần đưa vào Listbox có tên là strData
Static x As Long
lstMessages.AddItem strData
If x < TextWidth(strData & " ") Then
x = TextWidth(strData & " ")
If ScaleMode = vbTwips Then x = x / Screen.TwipsPerPixelX
SendMessageByNum lstMessages.hwnd, LB_SETHORIZONTALEXTENT, x, 0
End If
Mình đã test thử thành công nếu lstMessages là Listbox chuẩn của VB6, tuy nhiên, trong trường hợp bài thực hành của chúng ta, Listbox chúng ta sử dụng thuộc Microsoft Forms 2.0 Object Library, nó không hỗ trợ lấy window handle (đoạn màu đỏ ở trên)
Trường hợp chuỗi strData có nhiều dòng, mình giải quyết bằng cách thay thế ký tự xuống dòng (vbcrlf) bằng 1 ký tự khác trước khi đưa vào Listbox bằng hàm replace, ví dụ mình thay bằng khoảng trắng như sau: replace(strData,vbcrlf," ")
Bạn nào có cách giải quyết khác hơn hoặc có thể lấy được window handle của Listbox 2.0 để khắc phục lỗi trên của mình không?
DoTanLoc_I83C- Tổng số bài gửi : 24
Join date : 29/10/2009
Age : 38
Đến từ : HCTH083C
Re: Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
Rất vui khi nghe bạn nói vậy!lymotonew đã viết:Chắc chắn phát hiện này của bạn sẽ giúp ích rất nhiều cho mình và các bạn khác để cùng xây dựng ứng dụng hoàn thiện hơn.Thank !
Chúc vui!
Thân ái!
nchh- Tổng số bài gửi : 90
Join date : 19/02/2009
Age : 40
Re: Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
Thanks ban hen. Minh chay ung dung cung thay tinh trang nay. Bai viet cua ban rat chi tiet.
hoangthuy_i83c- Tổng số bài gửi : 4
Join date : 14/09/2009
Re: Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
những điểm mà các bạn nêu lên thì......có khi mình gặp, có khi mình thấy bình thường. Ko biết nguyên nhân sâu xa là sao. ví dụ, mình chạy trên máy ở trường thì bi lỗi, máy ở nhà cũng bị lỗi tương tự nhưng máy ở cty thì ko. Mình ko biet vấn đề cốt lõi là gì?! ko biết bạn nào có cao kiến giải bày phần này giúp mình!
mình cám ơn moi nguoi.
mình cám ơn moi nguoi.
kennytai- Tổng số bài gửi : 32
Join date : 29/09/2009
Re: Một số điểm nhỏ có thể cải thiện bài ChatTCP, thực hành chiều nay CN 8.11
Ý bạn là lỗi tiếng Việt và lỗi chữ dài hay sao?! Nếu là những lỗi đó thì đúng ra máy nào cũng bị chứ nhỉ, vì đó là lỗi cơ bản mà!kennytai đã viết:những điểm mà các bạn nêu lên thì......có khi mình gặp, có khi mình thấy bình thường. Ko biết nguyên nhân sâu xa là sao. ví dụ, mình chạy trên máy ở trường thì bi lỗi, máy ở nhà cũng bị lỗi tương tự nhưng máy ở cty thì ko. Mình ko biet vấn đề cốt lõi là gì?! ko biết bạn nào có cao kiến giải bày phần này giúp mình!
mình cám ơn moi nguoi.
nchh- Tổng số bài gửi : 90
Join date : 19/02/2009
Age : 40
Similar topics
» Điểm Quá trình K18 (có cải thiện điểm cho các bạn đi học thực hành buổi cuối)
» Thứ 7 chiều nay có thực hành môn LTTQ ko?
» THỰC HÀNH LẬP TRÌNH WINDOWS chiều nay (10/04/09)
» Điểm Thực hành I83C
» Điểm thi thực hành
» Thứ 7 chiều nay có thực hành môn LTTQ ko?
» THỰC HÀNH LẬP TRÌNH WINDOWS chiều nay (10/04/09)
» Điểm Thực hành I83C
» Điểm thi thực hành
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết