Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[VB6] caratteri cirillici unicode: problema

338 views
Skip to first unread message

Pokernews

unread,
Jun 4, 2008, 5:42:48 AM6/4/08
to
Buongiorno dovrei inserire testo unicode con caratteri cirillici (in russo)
in alcuni caption di command e textbox vari.
L'applicativo è vb6.
Qualcuno ha gia' affrontato il problema e trovato una soluzione?
Ringrazio tutti anticipatamente!


Franz aRTiglio

unread,
Jun 4, 2008, 9:49:23 AM6/4/08
to

Dopo innuverevoli madonne volanti nel tentare di far digerire
decentemente unicode a vb6 ho risolto sostituendo tutte le caption
con della grafica, ovviamente ho dovuto ridisegnare parte
dell'applicativo ma a conti fatti e' la soluzione migliore.

greg

unread,
Jun 4, 2008, 11:44:41 AM6/4/08
to
Franz aRTiglio ha scritto:

> Dopo innuverevoli madonne volanti nel tentare di far digerire
> decentemente unicode a vb6 ho risolto sostituendo tutte le caption
> con della grafica, ovviamente ho dovuto ridisegnare parte
> dell'applicativo ma a conti fatti e' la soluzione migliore.

Eh, ma quanto lavoro.....anche noioso immagino :(

--
Greg


Franz aRTiglio

unread,
Jun 4, 2008, 5:34:36 PM6/4/08
to

Neanche piu' di tanto... avendo il testo scritto in
madrelingua, basta "fotografare" con alt+stamp
lo schermo, poi 2 o 3 macro in fotoskiop fanno il resto.

Se l'applicazione e' "nativa" multilingua, e quindi le caption
vengono settate con codice del tipo:

Cmd_ButtonLoadNew.caption = GetString("Cmd_ButtonLoadNew")

(la funzione getstring frulla un file di testo che contiene le lingue)

Per fare la trasformazione basta che la funzione, anziche' restituire
una stringa restituisca un bitmap:

Cmd_ButtonLoadNew.picture = GetBitmap("Cmd_ButtonLoadNew")

IMHO ci vuole piu' tempo a spiegaro che a farlo... in succo :P

Avendo io avuto a che fare con i russi ho usato un
programmillo fatto da me, che dispone di un campo di testo RTF
nel qule l'utente scrive il testo che il bottone/label deve avere,
scegliendo
quindi font, dimensione, colore e cazzate varie, poi preme un bottone che
"fotografa" il testo stesso e ne salva la bitmap.

Mandando il programmillo ai russi, unitamente al file di testo sopracitato
che contiene le lingue, i russi hanno solo dovuto cliccare "next" per
tradurre bottoni e label che gia' avevo previsto in italiano, inglese e
francese, e poi mi hanno mandato la cartella risultante con le bitmap
belle e pronte :)


Rafunk

unread,
Jun 5, 2008, 4:08:29 AM6/5/08
to

Devi sicuramente cambiare il charset del font di ogni controllo,
impostandogli il valore 204 (che è quello corrispondente alla codepage
1251-Russian).
Inoltre, se parti da una stringa Unicode, prima di assegnarla alla caption
di un controllo devi convertirla in ANSI (UTF-8) ma con la codepage giusta
(specificando &H419 come LocaleID).

Esempio:

Private Sub Command1_Click()
Dim sUnicode As String
Dim sAnsi As String

Label1.Font.Charset = 204

sUnicode = ChrW(1069) & ChrW(1090) & ChrW(1086) & ChrW(32) _
& ChrW(1088) & ChrW(1091) & ChrW(1089) & ChrW(1089) & ChrW(1082) &
ChrW(1086)
sAnsi = StrConv(sUnicode, vbFromUnicode, &H419)
Label1.Caption = StrConv(sAnsi, vbUnicode)

End Sub

Premendo Command1, la label presenterà la scritta "Questo è russo" in russo.

Bye

Raf

3w4rwe

unread,
Jun 6, 2008, 2:11:23 AM6/6/08
to
Grandissima risposta, ti chiederei, se possibile una procedura per la
conversione di una testo unicode che restituisca il codice chrW di ogni
carattere che la contiene.
Grazie
Sei stato di estremo aiuto anche per me


Rafunk

unread,
Jun 6, 2008, 3:16:55 AM6/6/08
to

Hai provato AscW?

Bye

Raf


0 new messages