Français
Forum

Erweiterter Zeichensatz Unicode

 

Stephan
Sonneborn
allô gens,
je stehe toujours avant dem Problem, russische Textes sur Dialogelemente trop apporter. qui Textes liegen mittlerweile dans einer DLL dans russischer Discours avant.

je schaffe es mais pas, cet Textes darzustellen. Es volonté toujours seulement Fragezeichen angezeigt.

comment muss je qui Textes im ANSI- Bereich > 1024 ansprechen? je viens avec den WIDECHARS et WIDESTRINGS pas bien sûr...?!?!
Zunächst muss je qui Textes aus qui DLL lesen et zwar so, dass l'information, dass es kyrilische marque sommes avec übertragen wird. chez stehen ici déjà toujours seulement Fragezeichen im eingelesenen String.

Hat quelqu'un une concept?
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
06.07.2021  
 




Georg
Teles
allô Stephan,

si qui Windows Discours sur allemande ist, ist es normal, dass qui Textes mittels imprimer comme ??? herauskommen, là imprimer et SetText avec cela pas tourner autour de peut - d'autre Problem ist, dass cet Textes bereits im Russichen vorliegen, sodass du cet comme Ressource herauslesen et ensuite transformer devrait, weil ExtString$ pas avec WideStrings tourner autour de peux.

qui Grund meiner PCU  [...]  était oui c'est ca cette, dass on qui Cordes comme lateinische im Programme ou bien DLL einfügt et ensuite avec qui Funktion umwandelt - l2cPCU.l2l de lateinischen Cordes trop WideStrings et l2cPCU.l2c de den lateinischen Cordes trop kyrillischen WideStrings

Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

07.07.2021  
 




Stephan
Sonneborn
allô Georg,

vielen Dank pour Votre Antwort!
So habe je es sur Umwege aussi gemacht: un Kollege hat avec einer englisch / russischen clavier qui russischen Textes "blind" eingegeben et je hab den
Kauderwelsch aus lateinischen Buchstaben ensuite verwendet, um ihn avec dem CYRILLIC - Font darzustellen. Ist mais très unschön, weil on toujours den Font mitliefern muss.
maintenant hat un autre Kollege direct russische Textes eingegeben. et un anderer alles nochmal "richtig" sur russisch traduit.

je peux demain la fois une abgespeckte DLL einstellen...
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
07.07.2021  
 




Georg
Teles
qui Textes peux je dir oui aussi dans mon forme traduire, pour qui PCU si du magst

tu peux den Text direct im Programme ou bien dans qui DLL mitliefern. là russiche Textes generell problematisch sur einem deutschsprachigen PC sommes, ist es meiner attitude sinnvoller qui Textes juste dans lateinischen Buchstaben abzuspeichern (ansi) weil qui meisten Textfunktionen sowieso seulement avec Ansi quoi anfangen peut ... cet ensuite dans WideStrings transformer ind ausgeben, ensuite la hâte du qui Sicherheit, dass sur chaque PC cela Gleiche angezeigt wird.
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

07.07.2021  
 




Stephan
Sonneborn
je hab ici la fois un Testprogramm et une Mini-DLL avec trois Texten drin:
DECLARE DLL$, DLL&, FONT&, HText&[3], HTextW&[3]
DECLARE Text$[3], TextW$[3]
DECLARE Buffer#, count&, Adresse%,i%
DECLARE id%
DEF LoadStringW(4)      !"User32", "LoadStringW"
DEF IsMEnu(1)           !"User32", "IsMenu"
DEF CreateWindowExW(12) !"User32", "CreateWindowExW"
DEF SetWindowTextW(2)   !"User32", "SetWindowTextW"
DIM Buffer#,4097
STRUCT CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
'*****************************************************************************************************************'
'* ORDW, CHRW, UTF, CREATEW
'*****************************************************************************************************************'

proc ordw

    parameters s$
    declare m#
    dim m#,2
    char m#,0=left$($ S+"\z\z",2)
    var wc&=word(m#,0)
    dispose m#
    return wc&

endproc

'*****************************************************************************************************************'

proc chrw

    parameters wc&
    declare m#
    dim m#,2
    word m#,0=wc&
    var s$=char$(m#,0,2)
    dispose m#
    return s$

endproc

'*****************************************************************************************************************'

Proc UTF

    parameters text$
    declare b#
    Faible b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

ENDPROC

'*****************************************************************************************************************'

Proc CreateW

    parameters Class$,nom$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&
    cas %pCount <11 : exstyle& = 0
    Class$ = UTF(Class$)
    nom$ = UTF(nom$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = (IsMenu(id%)<>0) * id%
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(nom$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = CreateWindowExW(exstyle&,Addr(Class$),Addr(nom$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    Class$ = WinError$(%WinError)
    inc id%

    Si non handle&

        MessageBox("Es trat suivant faute sur:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Retour handle&

ENDPROC

'*****************************************************************************************************************'
'*****************************************************************************************************************'
'* Hauptprogramm'
'*****************************************************************************************************************'
DLL$ ="DLL_RU_Test.DLL"
DLL&=USEDLL(DLL$)
id% = 1
CLS
SET("CHARSET", 1251)
Font&=Créer("FONT", "calibri",0,0,0,0,0)
HText&[1] = create("Static",%HWND,"1", 10,10,200,20)
HText&[2] = create("Static",%HWND,"2", 10,40,200,20)
HText&[3] = create("Static",%HWND,"3", 10,70,200,20)
HTextW&[1] = createW("static","W1", $50000000,250,10,200,20,%HWND,0,%HINSTANCE)
HTextW&[2] = createW("static","W2", $50000000,250,40,200,20,%HWND,0,%HINSTANCE)
HTextW&[3] = createW("static","W3", $50000000,250,70,200,20,%HWND,0,%HINSTANCE)
SETFONT HText&[1], Font&
SETFONT HText&[2], Font&
SETFONT HText&[3], Font&
SETFONT HTextW&[1], Font&
SETFONT HTextW&[2], Font&
SETFONT HTextW&[3], Font&
WAITINPUT
Adresse% = 99

WHILELOOP 1,3,1

    CLEAR Buffer#
    count&     = LoadStringW(DLL&, Adresse%+&LOOP, Buffer#, 4097)
    Text$[&LOOP]  = EXTSTRING$ (DLL&, Adresse%+&LOOP)
    TextW$[&LOOP] = WIDECHAR(Buffer#,0,count&*2)
    SETTEXT HText&[&LOOP], Text$[&LOOP]
    SETTEXT HTextW&[&LOOP], TextW$[&LOOP]

WEND

WAITINPUT
DISPOSE Buffer#
DELETEOBJECT Font&
FREEDLL DLL&
FIN

7 kB
Hochgeladen:08.07.2021
Downloadcounter84
Download
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
08.07.2021  
 




Georg
Teles
Hi Stephan, habe deinen Voir le texte source angepasst, so pourrait es aller
DECLARE DLL$, DLL&, FONT&, HText&[3], HTextW&[3]
DECLARE Text$[3], TextW$[3]
DECLARE Buffer#, count&, Adresse%,i%
DECLARE id%
DEF LoadStringW(4)      !"User32", "LoadStringW"
DEF IsMEnu(1)           !"User32", "IsMenu"
DEF CreateWindowExW(12) !"User32", "CreateWindowExW"
DEF SetWindowTextW(2)   !"User32", "SetWindowTextW"
DIM Buffer#,4097
STRUCT CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
'*****************************************************************************************************************'
'* ORDW, CHRW, UTF, CREATEW
'*****************************************************************************************************************'

proc ordw

    parameters s$
    declare m#
    dim m#,2
    char m#,0=left$($ S+"\z\z",2)
    var wc&=word(m#,0)
    dispose m#
    return wc&

endproc

'*****************************************************************************************************************'

proc chrw

    parameters wc&
    declare m#
    dim m#,2
    word m#,0=wc&
    var s$=char$(m#,0,2)
    dispose m#
    return s$

endproc

'*****************************************************************************************************************'

Proc UTF

    parameters text$
    declare b#
    Faible b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

ENDPROC

'*****************************************************************************************************************'

Proc CreateW

    parameters Class$,nom$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&
    cas %pCount <11 : exstyle& = 0
    Class$ = UTF(Class$)
    nom$ = UTF(nom$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = (IsMenu(id%)<>0) * id%
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(nom$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = CreateWindowExW(exstyle&,Addr(Class$),Addr(nom$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    Class$ = WinError$(%WinError)
    inc id%

    Si non handle&

        MessageBox("Es trat suivant faute sur:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Retour handle&

ENDPROC

'*****************************************************************************************************************'
'*****************************************************************************************************************'
'* Hauptprogramm'
'*****************************************************************************************************************'
DLL$ ="DLL_RU_Test.DLL"
DLL&=USEDLL(DLL$)
id% = 1
CLS
SET("CHARSET", 1251)
Font&=Créer("FONT", "calibri",0,0,0,0,0)
HText&[1] = create("Static",%HWND,"1", 10,10,200,20)
HText&[2] = create("Static",%HWND,"2", 10,40,200,20)
HText&[3] = create("Static",%HWND,"3", 10,70,200,20)
HTextW&[1] = createW("static","W1", $50000000,250,10,200,20,%HWND,0,%HINSTANCE)
HTextW&[2] = createW("static","W2", $50000000,250,40,200,20,%HWND,0,%HINSTANCE)
HTextW&[3] = createW("static","W3", $50000000,250,70,200,20,%HWND,0,%HINSTANCE)
SETFONT HText&[1], Font&
SETFONT HText&[2], Font&
SETFONT HText&[3], Font&
SETFONT HTextW&[1], Font&
SETFONT HTextW&[2], Font&
SETFONT HTextW&[3], Font&
WAITINPUT
Adresse% = 99

WHILELOOP 1,3,1

    CLEAR Buffer#
    count&     = LoadStringW(DLL&, Adresse%+&LOOP, Buffer#, 4097)
    TextW$[&LOOP] = c2w(Buffer#,count&*2)'Byte pour Byte auslesen !!!
    SetWindowTextW(HText&[&LOOP], Addr(TextW$[&LOOP]))'Set...W
    SetWindowTextW(HTextW&[&LOOP], Addr(TextW$[&LOOP]))'Set...W
    'Text$[&LOOP]  = EXTSTRING$ (DLL&, Adresse%+&LOOP)
    'TextW$[&LOOP] = WIDECHAR(Buffer#,0,count&*2)
    'SETTEXT HText&[&LOOP], Text$[&LOOP]
    'SETTEXT HTextW&[&LOOP], TextW$[&LOOP]

WEND

WAITINPUT
DISPOSE Buffer#
DELETEOBJECT Font&
FREEDLL DLL&
FIN

WEND

Proc c2w'Byte pour Byte auslesen

Paramètres buf#, siz&
Déclarer wide$
Claire wide$

WhileLoop 0,(siz&-1)

    wide$ = wide$+Chr$(Byte(buf#,&loop))'+Chr$(4) CHR(4) entfällt, là Buffer# bereits comme Wide geladen wurde !!! chez normalem String devrait on ici den CHR(4) encore anhängen

Endwhile

Retour wide$

ENDPROC


Grüße
Georg
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

10.07.2021  
 




Stephan
Sonneborn
allô Georg,

super! cela klappt prima!

qui Knackpunkt était alors cela byte-weise Einlesen qui Textes et cela mettons sur SETWINDOWTEXTW() avec Ansprechen qui Textadresse.

Vielen, vielen Dank!
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
13.07.2021  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.727 Views

Untitledvor 0 min.
Georg Teles14.05.2024
Swissmade27.03.2024
E.T.14.01.2024
Stringray09.05.2022
plus...

Themeninformationen

cet Thema hat 2 participant:

Stephan Sonneborn (4x)
Georg Teles (3x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie