| |
|
|
- Seite 1 - |
|
Stephan Sonneborn | Hallo zusammen,
in der Hilfe steht bei der Funktion SET("CHARSET", X), dass für x nun auch Werte >2 zulässig sind. Welchen Wert müsste man denn für einen russischen Zeichensatz einstellen? Ich habs mit $0419 probiert. Hat aber nicht so hingehauen...
Eigentlich möchte ich folgendes Problem lösen: Texte, die in russisch vorliegen, mit Profan z.B. als Buttontexte oder Statictexte ausgeben. Also z.B. "Отмена" für "Abbrechen" auf eine Schaltfläche legen... |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 22.05.2012 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Nico Madysa | Oh, natürlich zeigt er dir nichts an. SetWindowTextW ist eine API-Funktion und kann mit XProfan-Strings nichts anfangen; man muss ihm die Adresse auf die Strings überweisen:
Var static&=CreateW("STATIC","Das ist ein Static. \nHier sollen Unicode-Zeichen rein.",$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance)
Waitinput
var a$ = utf("Test ") + chrw($401) + utf(" Test")
SetWindowTextW(static&,Addr(a$))
So geht's. |
|
|
| |
|
|
|
| Hoch, ich hahm an das Stephan den Präkompi im Einsatz hat ^^ |
|
|
| |
|
|
|
Stephan Sonneborn | Nico Madysa (29.05.12)
So geht's.
Ja, so geht's. *sichandenkopfschlägt* Danke Nico, für Deine Hilfe!
Aber nun die Ausbaustufe: Ich habe Texte (z.B. aus Excel), die liegen so vor: "Отмена" Wie bekomme ich das nun als Text in einem Unicode-Control angezeigt? Man müsste doch zuerst einmal herausbekommen, welches Zeichen ist das denn nun, was da angezeigt wird. Ein ORD() liefert natürlich auch wieder nur Zahlen zwischen 0...255. Gibts dazu ein entsprechendes OrdW()? Dann könnte man vielleicht jeden String zeichenweise umsetzen in das UniCode-Format und dann als Genazes wieder anzeigen. (Falls im Posting nur ?????? angezeigt werden: In meinem ersten Beitrag steht der russische Begriff) |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 30.05.2012 ▲ |
|
|
|
|
| Ordw wie gepostet: [...]
bzw.:
[OFFTOPIC] Stephan Sonneborn (30.05.12)(Falls im Posting nur ?????? angezeigt werden: In meinem ersten Beitrag steht der russische Begriff)
Scheinbar ein Bug meiner Beitragsvorschau - schaue ich mir bei Gelegenheit an. [/OFFTOPIC] |
|
|
| |
|
|
|
Nico Madysa | Auf dieser Seite [...] findest du so ziemlich alle Kodierungsumwandlungen, die dein Herz begehren kann, als NProcs; auch Widechar-Varianten von Chr$() und Ord() sind dabei.
Ich hoffe, es bereitet dir keine Schwierigkeiten, sie in eine XPSE-freie Syntax zu übersetzen.
Aber ich sehe gerade nicht, warum du OrdW brauchen solltest. Dem Widechar-Control, das mit CreateW erstellt worden ist, müsstest du nur den Text per SetWindowTextW zuweisen. Wenn der Text, den du zuweisen willst, bereits widecharkodiert ist (also 2 Bytes pro Zeichen), dann gibt es dabei gar keine Hindernisse.
Oder mit anderen Worten: Ich sehe gerade nicht, wo dein Problem liegt. |
|
|
| |
|
|
|
Stephan Sonneborn | Nico Madysa (30.05.12)
Oder mit anderen Worten: Ich sehe gerade nicht, wo dein Problem liegt.
Mein Problem liegt hierin: Füg mal diese beiden Zeilen in Deinen Quellcode ein:
Bei mir werden dann chinesische (oder was auch immer) Zeichen angezeigt... |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 31.05.2012 ▲ |
|
|
|
|
| Ich habe Dir hier mal was "hingeschmiert" was den Inhalt einer mit Widechar-Chars- gefüllten Zwischenablage als CHR$(...-Sequenz in die Zwischenablage ablegt.
So kannst Du z.B.: укепщьаь
in die Zwischenablage nehmen und dann das Programm starten und dann kommt da: bei raus.
Das wiederum als Wert für b$ zeigt das Gewünschte.
Download externer Download
|
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Nico Madysa | Stephan Sonneborn (31.05.12)
Bei mir werden dann chinesische (oder was auch immer) Zeichen angezeigt...
Ach so, klar. Das muss schiefgehen. XProfan ist ja sicherlich nicht dafür ausgelegt, dass der Quelltext Unicode-Zeichen enthält. Wenn du deinen Unicodetext aber woandersher nimmst (Zwischenablage oder eine UTF-kodierte Textdatei), dann sollte es keine Probleme geben. |
|
|
| |
|
|
|
Stephan Sonneborn | Nico Madysa (31.05.12)
Wenn du deinen Unicodetext aber woandersher nimmst (Zwischenablage oder eine UTF-kodierte Textdatei), dann sollte es keine Probleme geben.
Ich hab die Texte in einer DLL. Das Auslesen mit EXSTRING$() scheidet daher aus.
Ich dachte, dass LoadStringW() weiterhilft:
und dann
'************************************************************************************************
' Texte aus DLL lesen *
'************************************************************************************************
PROC Read_Texts
DECLARE i%, o%, k%, Adresse%
DECLARE Buffer#
DIM Buffer#,4097
'+----------------------------------------------------------------------------------------------+
' Logindialog: (Adresse 100)
'+----------------------------------------------------------------------------------------------+
Adresse% = 100
LogTitle$ = EXTSTRING$(SMEDLL&, Adresse%)
i% = 1
WHILELOOP 1,3,1
'LogButton$[i%] = EXTSTRING$(SMEDLL&, Adresse%+&LOOP)
CLEAR Buffer#
LoadStringW(SMEDLL&, Adresse%+&LOOP, Buffer#, 4097)
LogButton$[i%] = STRINGW$(Buffer#,0)
INC i%
WEND
DISPOSE Buffer#
ENDPROC
Leider liefert das Ergebnis im anhängenden Bild. |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 01.06.2012 ▲ |
|
|
|
|
| Wieviel gibt LoadStringW zurück?
Imho statt:
eher:
Nicht sicher bin ich ob es vlt. sogar LogButton$[i%] = char$(Buffer#,0,count&*2) heissen
müsste da imho die Dokumentation dazu nicht eindeutig ist. |
|
|
| |
|
|
|
Stephan Sonneborn | iF (01.06.12)
Wieviel gibt LoadStringW zurück?
Bei diesem Text "OK ываысаи" bringt es 10 zurück. Es sind auch 10 Zeichen.
iF (01.06.12)
Imho statt:
LogButton$ = STRINGW$(Buffer#,0)
eher:
count&=LoadStringW(...
LogButton$ = char$(Buffer#,0,count&)
Nicht sicher bin ich ob es vlt. sogar LogButton$ = char$(Buffer#,0,count&*2) heissen müsste da imho die Dokumentation dazu nicht eindeutig ist.
Hat leider beides nichts gebracht... |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 11.07.2012 ▲ |
|
|
|
|
| Ich habe jetzt etwas den Faden verloren.
Wenn LoadStringW die korrekte Zeichenanzahl liefert dann einfach:
Sorry, Korrektur - müsste dann wohl zeichenAnzahl*2 heissen -
verwirrt mich! |
|
|
| |
|
|