PDA

View Full Version : [Q] hiển thị tiếng việt



phuong_bongsen
06-06-2003, 16:36
Tôi muốn hiển thị tiếng việt trên caption của một form trong visual basic.

Tôi cần sự giúp đỡ.

xeko
06-06-2003, 23:34
Bạn thử dung font VNI

dtt_vn
06-06-2003, 23:56
u co the doi font, xin vao http://coolcode4you.fateback.com . nhung ma noi truoc la khong the su dung cho winxp dau nhe. trong xau lam

ntbinh
07-06-2003, 13:01
Nên sử dụng font hệ thống hổ trợ Unicode trong Việt Key2000,hay vào trang Vovisoft.com thử coi

dtt_vn
07-06-2003, 14:46
khong bao gio duoc. con mot cach khac: ve lai caption. cach nay neu viet bang delphi thi de lam

TongNghien
07-06-2003, 15:33
Được chứ. Trên mạng có nhiều source về phần này lắm. Nếu "bí" quá, bạn có thể gởi mail cho webmaster của www.vovisoft.com :D

LanAnh
07-06-2003, 16:50
Bạn có thể vào diễn đàn http://tinhocabc.com/forum mà đọc bài tui post lên có tiêu đề:

Lập trình tiếng Việt với Form trong VB.

Nicky
09-06-2003, 19:36
Em đâu có thấy chỗ nào đâu chị LanAnh.:(
Hay chị nói ý tưởng của chị một chút đi. Chị làm bằng cách nào..hic, đừng trả lời là chị đôit Font hệ thống nhé, mọi người đã gợi ý cách này rồi.:(

KEM_WALL
09-06-2003, 19:44
set border = none
owndraw caption

laze_a1
10-06-2003, 12:02
Tôi viết 1 chương trình nhỏ bằng VB trong môi trường font ABC, nhưng bây giờ chuyển sang Vietkey thì toàn bị lối. Các bạn có cách nào mà không phải ngồi viết lại để sửa lỗi này không nhỉ ????

dtt_vn
10-06-2003, 22:26
Risky đã từng thử làm chuyện đó. Mọi sự tỏ ra rất tốt với các hệ thống từ W2000 trở về trước. Nhưng đến WinXp thì lại khác. Có lẽ Wall nói đúng, cần phải tự vẽ lại cái caption. có thể tự thiết kế một control, hoặc không thì dùng API vẽ lại.

xeko
12-06-2003, 13:28
Theo mình là dùng font Vni rồi dung unikey để ở Vni . sau đó đánh như bình thươing thôi. Rồi khi làm bộ cài đặt thì cài đặt font vni vào font của window. Thế là xong

Nicky
12-06-2003, 19:13
Những Control khác thì làm như Xeko nói là được nhưng đây là Caption, nếu muốn đổi Font của Caption thỉ phải đổi luôn cả Font hệ thống của Windows mà điều này không ai thích chút nào.
Các bạn có thể dùng một label giả làm Caption giống như chị LanAnh và Wall đã nói http://tinhocabc.com/forum
Tuy nhiên, nếu bạn dùng Font ABC mà máy người dùng lại không có Font đó thì sao. Vì vậy khi Setup nhớ Setup luôn cái Font hoặc kèm Font theo chươg trình, khi chạy sẽ gọi hàm AddFontResource để cài Font mới vào máy.

xeko
12-06-2003, 23:42
Bạn hãy dùng label làm nút bấm giả rồi dung 4 line để tạo hiệu ưng như nhấn xuống mỗi khi được click thế là xong

xblackbox
13-06-2003, 13:41
Vấn đề như sau:
-Vì Caption của Form rất khó cho phép ta sử dụng tiếng Việt trên đó nếu lập trình bằng VB60(có thể do hạn chế của IDE VB60).
-Và còn một phụ thuộc nữa là hđh, trên nền hđh Windows9x thì có thể nói hỗ trợ Unicode, tiếng Việt còn bị hạn chế, Windows2000 thì OK, nó cho phép tiếng Việt trên Caption của Form, nhưng lập trình bằng VB để hiển thị như vậy thì rất khó.

Theo tôi, tôi đã sử dụng giải pháp như sau:
-Bỏ Caption của Form đi (ControlBox=False,....)
-Sử dụng một Label (MS Form 2.0 _ hỗ trợ Unicode) để giả làm Caption của Form, đồng thời set màu cho nó giống màu Caption Form
-Thực hiện một số lệnh khi run-time để cho nó giống như một Caption thực (di chuột trên Label thì di chuyển cả Form).
Giải pháp này, tôi đã sử dụng và tương đối có hiệu quả. Nhưng bản thân tôi vẫn không hài lòng lắm.

Đọc trên một số diễn đàn tôi thấy, các bạn có một giải pháp là thay đổi font của hệ thống, nhưng giải pháp này tôi cho là mang tính gò bó, phải phụ thuộc vào font, mà font tiếng Việt thì mỗi nơi dùng một font khác nhau. Tốt hơn hết, nếu có dùng giải pháp nào thì ta nên sử dụng Unicode, font ABC, VietKey, VNI chỉ mang tính tạm thời.. .

Còn nữa, bây giờ là vấn đề menubar, tôi thấy khi sử dụng VB60, font menubar của nó không phụ thuộc vào thiết lập hệ thống, hoàn toàn độc lập, bạn nào có cách làm giống như nó không chỉ cho tớ với.

dtt_vn
14-06-2003, 14:33
Cho Risky hỏi chuyện này. Giả sử bạn dùng Label 2.0. Như vậy khi muốn set caption, bạn làm như thế nào? Editor của VB không hỗ trợ Unicode!! Vấn đề nảy sinh là bạn không thể gõ Unicode. Nếu bạn có Cao kiến thì nói ra cho mọi người bíet với, còn nếu bạn sử dụng Font VNI hay TCVN thì cũng như là đang sử dụng Label chuẩn rồi

White_Rose
14-06-2003, 20:29
- Sử dụng chrW()
- Lưu trong file text ở dạng Unicode (UTF-8 chẳng hạn) rồi sử dụng FSO để đọc.
- ...

LMTruong
14-06-2003, 21:37
Ui Seo ma` rac rối wé hổng bít á, hiện giờ mình hổng có mang code theo, nên hẹn bạn lần sau zậy. Mình có thể thay đổi tiếng việt tất cả. Từ caption, tooltip, cho đến menu .......

luudan
16-06-2003, 13:49
Cái ông LNTruong này đợi ông lâu quá nha.Sao ông không gởi source cho anh em cùng tham khảo.Đã hứa đem mà không đem là chết với luudan này đó nha.Nói chơi chứ mau post lên cho anh em cùng coi chứ.Cái này hay đó tui hổng có biết làm.Tức ghê.Mau lên nha.

KEM_WALL
16-06-2003, 15:45
hic, mấy cái vấn để chữ Việt này, cứ nói đi nói lại mãi ...
nói câu này các bạn đừng giận ha: chuyển quách lên .Net nếu muốn xài unicode
còn kô thì cứ vni là xong

xài vni thì được tính tương thích, mọi win, nhưng kô đẹp
xài cách chuyển font hệ thống là điều tệ nhất bạn có thể nghĩ tới
xài unicode thì bị hạn chế hệ điều hành (trên NT hỗ trợ mới tốt)
xài IDE .NET mà build thì hạn chế chỉ xài trên những máy có framework.net
xài owndraw caption thì viết code nhiều lắm (mỗi form 1 lần làm lại)
xài usercontrol, để dễ sử dụng lại trong mỗi form, ý hay đấy, nhưng phần đọc caption vào = file thì thật khó cho chương trình của bạn. vì end user khác có thể thay đổi và chương trình bạn crash
xài resource để chứa hả, cải tiến đó, nhưng reshacker vẫn làm được

......

nói tóm lại, tốt nhất là viết chương trình dùng english thui. walls hết cách đó

LMTruong
16-06-2003, 18:06
Trùi ui lèm gì mà gấp thế hổng biết nữa

quatbatieu
20-06-2003, 10:31
Nếu bạn có thể viết Unicode trên Form thì mình nghĩ có thể tạo ra các Caption, Menu = form rối gắn kết vị trí các form đó với nhau, cách làm này cũng giống như Windows tạo các cửa sổ. Mình chưa thử qua cách này nhưng việc tuỳ biến dạng form thì mình đã làm rùi, từ cá tooltip, Button đều phải làm lại. Tuy nhiên cái chương trình của mình còn gặp vấn đề ở chổ load font chữ Unicode vào, cách dùng các hàm APi đê dùng font Unicode có lẽ là tốt hơn cả. Cách load Unicode Text vào thì có thể dùng CSDL của chương trình, lưu các label, caption cần hiển thị vô một Field, rùi lấy ra khi Load các form.
Viêc viết trình cho ngôn ngữ Việt mình thấy rất hữu ích, tại sao các nước Châu Á(Trung quốc, Nhật) đều có thể phát triễn được mà mình lại không chứ.

NHL(c)
20-06-2003, 11:35
Unicode Arial !

Bin_NT
20-06-2003, 17:13
tại sao chung ta ko tận dụng font unicode sẵn có trong ms windows chan hạn tahoma...va` có thể viết bằng tiếng việt với những font này và khi đó máy khác họ vẫn hiện thị được tiếng việt trên form ...các bạn hãy thử xem, tuy đây ko là cách hay nhưng nó cũng là một cách có thể dùng được ....

stupid man
21-06-2003, 10:58
Cách mà LMTruong làm là đổi font hệ thống đó( đã nói nhiều rồi !), như Bin nt nói thì phải đổi font hệ thống vì ở winxp, font ở titlebar là Trebuchet MS không phải tahoma hay ms sanserif.

infoc
26-06-2003, 03:31
Bạn xblackbox

Font Menubar có phụ thuộc vào font hệ thống chứ sao không?

Tôi đã thử:

Dùng Menu font là ABC
Đổi font Menu sang font ABC thì nó hiện tiếng việt ra

sotret
30-06-2003, 19:58
hic, mấy cái vấn để chữ Việt này, cứ nói đi nói lại mãi ...
nói câu này các bạn đừng giận ha: chuyển quách lên .Net nếu muốn xài unicode
còn kô thì cứ vni là xong
Ấy chết, bạn không cần phải đao to búa lớn thế đâu. Chỉ cần có Unikey 3.5 thôi đấy. Cần chọn font unicode vd Time new romance, tahoma .v.v. và trong mục script chọn font nhớ chọn Vietnamese (với đk bạn phải cài lang Vietnamese trong windows)
Rồi gõ vô tư bằng tiếng việt với font unicode tổ hợp nhé (đây là một lợi thế của precompose unicode)
Chúc bạn thành công.