PDA

Vollständige Version anzeigen : UNICODE


FW
28.06.2001, 14:59
... wie kann man in einem Formular den GESAMTEN Arial-Zeichensatz darstellen?

In stiller Hoffnung auf eine Antwort

Frank

Kurt aus Kienitz
28.06.2001, 15:58
Hallo,

In dem Du im Formular ein ungebundenes Textfeld anlegst und diesem den Font Arial zuweist.

Jetzt willst Du bestimmt wissen, wie man die entsprechenden Zeichen dort eingibt :(

Weiß ich auch nicht. Klar ist aber daß Du die Funktion ChrW(459) verwenden mußt um einen String vom 459 Zeichen (Unicode) des Zeichensatzen zu erstellen.
Diesen String kannst Du dann dem Textfeld zuweisen um daß Zeichen darzustellen.

Folgende Beispiel Funktion:

Function GetUnicode() As String

Dim i

For i = 200 To 400

GetUnicode = GetUnicode & ChrW(i)

Next i

End Function

Im Textfeld habe ich als Steuerelementinhalt =GetUnicode() eingetragen und bekomme alle Zeichen angezeigt.

HTH

FW
28.06.2001, 16:22
Hi Kurt,

vielen Dank, aber ich glaube, ich bin im falschen Forum - sorry!

unter VB6 läuft das Ganze nämlich leider nicht!

Oder hast Du da auch 'ne Ahnung?

Mittlerweile in freudiger Erwartung

Frank

Kurt aus Kienitz
29.06.2001, 13:24
Hallo,

Da muß ich Dich leider enttäuschen :(

Wenn das in VB6 anders läuft als in VBA (warum eigentlich?) weiß ich da leider nicht weiter.

Wenn des unter VB6 die Funktion CharW() gibt, kann es ja eigentlich nurnoch am Widget liegen.
Kann man da evtl. irgendwo den String-Typ einstellen ?

Tut mir leid.

Stefan Kulpa
01.07.2001, 05:08
<font face="Verdana" size="2">Hallo,

vielleicht hilft Dir folgendes Beispiel weiter (Quelle: MSDN); das Ganze muss in eine Form mit einem CommandButton kopiert werden:</font>

<FONT SIZE=1 FACE=Courier New><FONT COLOR=#008000>'** Quelle:</FONT>
<FONT COLOR=#008000>'** MSDN ID: Q181276</FONT>
<FONT COLOR=#008000>'** HOWTO: Display Extended ASCII WingDings on DBCS Systems</FONT>

<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Type</FONT> LOGFONT
lfHeight <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
lfWidth <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
lfEscapement <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
lfOrientation <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
lfWeight <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
lfItalic <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfUnderline <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfStrikeOut <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfCharSet <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfOutPrecision <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfClipPrecision <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfQuality <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfPitchAndFamily <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
lfFaceName <FONT COLOR=#000080>As String</FONT> * 32
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Type</FONT>

<FONT COLOR=#008000>'** Charset Konstanten</FONT>
<FONT COLOR=#008000>'** Werte für lf.lfCharSet:</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> ANSI_CHARSET = 0
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> DEFAULT_CHARSET = 1
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> SYMBOL_CHARSET = 2
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> SHIFTJIS_CHARSET = 128
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> HANGUL_CHARSET = 129
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> GB2312_CHARSET = 134
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> CHINESEBIG5_CHARSET = 136
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> GREEK_CHARSET = 161
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> TURKISH_CHARSET = 162
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> HEBREW_CHARSET = 177
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> ARABIC_CHARSET = 178
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> BALTIC_CHARSET = 186
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> RUSSIAN_CHARSET = 204
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> THAI_CHARSET = 222
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> EE_CHARSET = 238
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> OEM_CHARSET = 255

<FONT COLOR=#008000>'** Werte für GetSysColor:</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_BTNFACE = 15
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_ACTIVEBORDER = 10
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_ACTIVECAPTION = 2
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_ADJ_MAX = 100
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_ADJ_MIN = -100
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_APPWORKSPACE = 12
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_BACKGROUND = 1
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_BTNHIGHLIGHT = 20
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_BTNSHADOW = 16
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_BTNTEXT = 18
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_CAPTIONTEXT = 9
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_GRAYTEXT = 17
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_HIGHLIGHT = 13
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_HIGHLIGHTTEXT = 14
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_INACTIVEBORDER = 11
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_INACTIVECAPTION = 3
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_INACTIVECAPTIONTEXT = 19
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_MENUTEXT = 7
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_SCROLLBAR = 0
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_WINDOW = 5
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_WINDOWFRAME = 6
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Const</FONT> COLOR_WINDOWTEXT = 8

<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> TextOut <FONT COLOR=#000080>Lib</FONT> "gdi32" <FONT COLOR=#000080>Alias</FONT> _
"TextOutA" _
(<FONT COLOR=#000080>ByVal</FONT> hdc <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>, _
<FONT COLOR=#000080>ByVal</FONT> x <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>, _
<FONT COLOR=#000080>ByVal</FONT> y <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>, _
lpString <FONT COLOR=#000080>As</FONT> Any, _
<FONT COLOR=#000080>ByVal</FONT> nCount <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> DeleteObject <FONT COLOR=#000080>Lib</FONT> "gdi32" _
(<FONT COLOR=#000080>ByVal</FONT> hObject <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> CreateFontIndirect <FONT COLOR=#000080>Lib</FONT> "gdi32" <FONT COLOR=#000080>Alias</FONT> _
"CreateFontIndirectA" _
(lpLogFont <FONT COLOR=#000080>As</FONT> LOGFONT) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> SelectObject <FONT COLOR=#000080>Lib</FONT> "gdi32" _
(<FONT COLOR=#000080>ByVal</FONT> hdc <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>, _
<FONT COLOR=#000080>ByVal</FONT> hObject <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> SetBkColor <FONT COLOR=#000080>Lib</FONT> "gdi32" _
(<FONT COLOR=#000080>ByVal</FONT> hdc <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>, _
<FONT COLOR=#000080>ByVal</FONT> crColor <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> GetBkMode <FONT COLOR=#000080>Lib</FONT> "gdi32" _
(<FONT COLOR=#000080>ByVal</FONT> hdc <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Declare</FONT> <FONT COLOR=#000080>Function</FONT> GetSysColor <FONT COLOR=#000080>Lib</FONT> "user32" _
(<FONT COLOR=#000080>ByVal</FONT> nIndex <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#808080><HR></FONT>

<FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> Command1_Click()

<FONT COLOR=#000080>Dim</FONT> lf <FONT COLOR=#000080>As</FONT> LOGFONT
<FONT COLOR=#000080>Dim</FONT> chars(257) <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
<FONT COLOR=#000080>Dim</FONT> sysColor <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Dim</FONT> DispChar <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> NumDispchar <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> prevBkCol <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Dim</FONT> hFont <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Dim</FONT> StartASCII <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> StopASCII <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> StartRow <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> NumOfChars <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> i <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> j <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> EndRow <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> NewStart <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> tmp <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> xd <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Dim</FONT> xt <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
<FONT COLOR=#000080>Dim</FONT> xs <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>

<FONT COLOR=#008000>'** Hier die wichtigsten Einstellungen:lfCharSet und lfFaceName</FONT>
<FONT COLOR=#008000>'** Aus dem Originalbeitrag der MSDN:</FONT>
<FONT COLOR=#008000>'** lf.lfCharSet = SYMBOL_CHARSET</FONT>
<FONT COLOR=#008000>'** lf.lfFaceName = "WingDings" & Chr$(0)</FONT>
<FONT COLOR=#008000>'** Abgewandelt für Arial</FONT>
lf.lfCharSet = DEFAULT_CHARSET
lf.lfFaceName = "Arial" & Chr$(0)

lf.lfClipPrecision = 64
lf.lfOutPrecision = 0
lf.lfEscapement = 0
lf.lfItalic = 0
lf.lfWidth = 16
lf.lfHeight = 32
lf.lfOrientation = 0

Form1.Caption = lf.lfFaceName
Form1.Refresh
<FONT COLOR=#008000>'** Systemfarbe der Schaltfläche ermitteln</FONT>
sysColor = GetSysColor(COLOR_BTNFACE)
<FONT COLOR=#008000>'** Hintergrundfarbe setzen</FONT>
prevBkCol = SetBkColor(Form1.hdc, sysColor)
hFont = CreateFontIndirect(lf)
xs = SelectObject(Form1.hdc, hFont)

DispChar = 32 <FONT COLOR=#008000>'** Anzuzeigende Zeichen pro Reihe</FONT>
StartASCII = 32 <FONT COLOR=#008000>'** Wert des ersten anzuzeigenden Zeichens</FONT>
StopASCII = 255 <FONT COLOR=#008000>'** Wert des zuletzt anzuzeigenden Zeichen</FONT>
StartRow = 1

<FONT COLOR=#000080>If</FONT> StartASCII < 0 <FONT COLOR=#000080>Then</FONT> StartASCII = 32
<FONT COLOR=#000080>If</FONT> StopASCII > 255 <FONT COLOR=#000080>Then</FONT> StopASCII = 255
<FONT COLOR=#000080>If</FONT> StartASCII > StopASCII <FONT COLOR=#000080>Then</FONT>
tmp = StartASCII
StartASCII = StopASCII
StopASCII = tmp
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT>

NumOfChars = StopASCII - StartASCII + 1
<FONT COLOR=#000080>If</FONT> Int(NumOfChars / DispChar) = (NumOfChars) / DispChar <FONT COLOR=#000080>Then</FONT>
EndRow = Int(NumOfChars / DispChar)
<FONT COLOR=#000080>Else</FONT>
EndRow = Int(NumOfChars / DispChar) + 1
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT>
<FONT COLOR=#000080>For</FONT> i = StartASCII <FONT COLOR=#000080>To</FONT> StopASCII
chars(i) = i
<FONT COLOR=#000080>Next</FONT> i
<FONT COLOR=#000080>For</FONT> j = StartRow <FONT COLOR=#000080>To</FONT> EndRow
NewStart = StartASCII + (j - 1) * DispChar
<FONT COLOR=#000080>If</FONT> NumOfChars < DispChar <FONT COLOR=#000080>And</FONT> NumOfChars > 0 <FONT COLOR=#000080>Then</FONT>
NumDispchar = NumOfChars
<FONT COLOR=#000080>Else</FONT>
NumDispchar = DispChar
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT>
xt = TextOut(Form1.hdc, 0, j * lf.lfHeight + 2, _
chars(NewStart), NumDispchar)
NumOfChars = NumOfChars - NumDispchar
<FONT COLOR=#000080>Next</FONT> j
xd = DeleteObject(hFont)
Form1.Caption = Form1.Caption & " From " & _
StartASCII & " to " & StopASCII

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>
<FONT COLOR=#808080><HR></FONT></FONT>

<font face="Verdana" size="2">Das Beispiel zeigte ursprünglich die WingDings-Zeichen an, aber durch eine simple Änderung (s.o.) können auch die Arial-Zeichen angezeigt werden. Vielleicht kannst Du das ja für Deine Wünsche anpassen.

HTH,

<hr><font face="Verdana" size="2"><font color="#008000"><a href="http://vbtipps.gmxhome.de/MyLinks.html" target="_blank">Hier könnte man auch was finden ...</a></font></font></font>