Forum | | | | Nico Madysa | Hello Gemeinde!
it turn itself circa subesquent code: CompileMarkSeparation {$iq}
{MkStr$
nproc MkStr$
parameters s$,n&
var ns$=""
whileLoop n&
ns$=ns$+s$
wend
return ns$
endproc
{TToUTF
nproc TToUTF
parameters text$
var utf$ = MkStr$(" ",2 * len(text$))
MultiByteToWideChar(0,1,text$,-1,utf$,len(text$))
return utf$
endproc
{ControlW
nproc ControlW
parameters Class$,Name$,style&,x&,y&,dx&,dy&,pWnd&,pid&,hInst&,exstyle&
var cs& = Dim(40)
Long cs&, 0 = 40
Long cs&, 4 = hInst&
Long cs&, 8 = pid&
Long cs&,12 = pWnd&
Long cs&,16 = dx& * 65536 + dy&
Long cs&,20 = x& * 65536 + y&
Long cs&,24 = style&
Long cs&,28 = Addr(Name$)
Long cs&,32 = Addr(Class$)
Long cs&,36 = exstyle&
var handle& = CreateWindowExW(exstyle&,Class$,Name$,style&,x&,y&,dx&,dy&,pWnd&,pid&,hInst&,cs&)
Dispose(cs&)
return handle&
endproc
cls
Shell "CHARMAP"
var Font& = Create("Font","Times New Roman",32,0,0,0,0)
var a& = Control( "EDIT" ,"TzTz",1342242944,200, 5,200,35,%hWnd,1,%hInstance,$200)
var a& = Create("Edit",%hWnd,"ABCDEFGHI",200,5,200,35)
print WinError$(%WinError)
SetFont a&,Font&
var w& = ControlW(TToUTF("EDIT"),"ABCDEFGHI",1342242944,200,40,200,35,%hWnd,1,%hInstance,$200)
print WinError$(%WinError)
SetFont w&,Font&
whilenot IsKey(27)
waitinput
wend
DeleteObject Font&
class=s4 href='./../../Function-References/XProfan/end/'>end
(needed XPSE!)
Vereinfacht said power the small mere one Edit once by Create and once with CreateWindowExW to create. Erwartungsgemäß ought to the Edit Ansizeichen therefore only upper print can and the bottom pretty much everything Vorstellbare.
The first Schein gives me right -- "ABCDEFGHI" above normal outputted, under go however, two bytes to a characters abstracted -- Unikode hold.
The Clou is: Both edits can use any kind of characters darstellen; z.B. too the Integralzeichen, The typografischen quotation marks, the lächelnde face, The two Achtelnoten, greichische letters, what the marrow begehrt.
the Roland heimlich on Unikodecontrols umgestiegen is, can I me Nich so right present. lying it therefore on any strange Windows settings? what comes with you out?
the Program ought to same yet The Zeichentabelle open. copies simply a couple exotic characters (russian, Hebräisch, whatever) and guckt, whether both Editfields tappt im dunkeln suppose.
I would for Tests very grateful.
Sincerely,
Nico |
| | | | |
| | | function UTFToT missing. oO |
| | | | |
| | Dieter Zornow | Should not a code only once even on Lauffähigkeit testing, before one it here reinstellt ? |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 12/22/09 ▲ |
| |
| | Nico Madysa | any Lines, The m$ include, can auskommentiert go, there it circa these Variable Yes none goes.
Habs supra korrigiert. I type my Kodes fundamentally first certain lines the Community and change tappt im dunkeln there also öfters yet quick. |
| | | | |
| | | functions!
the the/The Ctrl(s) intern Wide works, wundert me not - lay Yes The Messages the Meiste breits solid or. which Stringtyp To process is. |
| | | | |
| | Nico Madysa | Hehe, Å is no Unikodezeichen.
but I see already, that not my Error is. what me problematically is: Rolands Strings are of my Wissens normal Einbyteprozeichen-Stirngs. what would then occur, if I in a with Create() begot Edit, say we, the Integralzeichen write and the thing then with GetText$() choose? i think, i'll plenty Fun on the experiment having, as well as I to that program come. |
| | | | |
| | Dieter Zornow | by me functions it ditto and both Edits can also exotic characters present. |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 12/23/09 ▲ |
| |
| | | Nico Madysa, Beitrag=55555, Zeitpunkt=23.12.2009
Rolands Strings are of my Wissens normal Einbyteprozeichen-Stirngs.
Rolands (Delphi) Strings are the Result of z.B. GlobalAlloc(gPTR,8+charCount+1+x)+8, you have on place -8 a Referenzzähler and on place -4 The Number of byte. +1 for x00 and +x for round up on 4 teilbaren memory in 32-bit-Apps or. 8 in 64 or. according to Registerbreite. very so have I The nativen Strings too program and be as freely the formation.
Nico Madysa, Beitrag=55555, Zeitpunkt=23.12.2009
what would then occur, if I in a with Create() begot Edit, say we, the Integralzeichen write and the thing then with GetText$() choose?
your "String" is only one area fester size, either becomes cut or beget a Bereichsüberschreitung. If one Unicode sure of Ansi discern can, then could one certainly too ne automatic transmission install - for these automatischen functions this String then but not any more binärsicher would. ^^ |
| | | | |
| | Nico Madysa | CompileMarkSeparation {$iq}
{MkStr$
nproc MkStr$
parameters s$,n&
var ns$=""
whileLoop n&
ns$=ns$+s$
wend
return ns$
endproc
{TToUTF
nproc TToUTF
parameters text$
var utf$ = MkStr$(" ",2 * len(text$))
MultiByteToWideChar(0,1,text$,-1,utf$,len(text$))
return utf$
endproc
{UTFToT
nproc UTFToT
parameters utf$
var text$ = MkStr$(" ",len(utf$))
WideCharToMultiByte(0,0,utf$,-1,text$,len(utf$) / 2,0,0)
return text$
endproc
{SetTextW
nproc SetTextW
parameters h&,text$
return SendMessageW(h&,WM_SETTEXT,0,text$)
endproc
{GetTextW
nproc GetTextW
parameters h&
var text$ = MkStr$(" ",255)
SendMessageW(h&,WM_GETTEXT,255,text$)
return text$
endproc
{ControlW
nproc ControlW
parameters Class$,Name$,style&,x&,y&,dx&,dy&,pWnd&,pid&,hInst&,exstyle&
var cs& = Dim(40)
Long cs&, 0 = 40
Long cs&, 4 = hInst&
Long cs&, 8 = pid&
Long cs&,12 = pWnd&
Long cs&,16 = dx& << 16 + dy&
Long cs&,20 = x& << 16 + y&
Long cs&,24 = style&
Long cs&,28 = Addr(Name$)
Long cs&,32 = Addr(Class$)
Long cs&,36 = exstyle&
var handle& = CreateWindowExW(exstyle&,Class$,Name$,style&,x&,y&,dx&,dy&,pWnd&,pid&,hInst&,cs&)
Dispose(cs&)
return handle&
endproc
cls
Shell "CHARMAP"
var Font& = Create("Font","Times New Roman",32,0,0,0,0)
var a& = Create("Edit",%hWnd,"ABCDEFGHI",180,5,220,35)
print WinError$(%WinError)
SetFont a&,Font&
var b& = Create("Edit",%hWnd,"",180,40,220,35)
print WinError$(%WinError)
SetFont b&,Font&
var v& = ControlW(TToUTF("EDIT"),"ABCDEFGHI",1342242944,400,5,200,35,%hWnd,1,%hInstance,$200)
print WinError$(%WinError)
SetFont v&,Font&
var w& = ControlW(TToUTF("EDIT"),"ABCDEFGHI",1342242944,400,40,200,35,%hWnd,1,%hInstance,$200)
print WinError$(%WinError)
SetFont w&,Font&
whilenot IsKey(27)
waitinput
SetText b&,GetText$(a&)
SetText w&,GetText$(v&)
SetTextW(b&,GetTextW(a&))
SetTextW(w&,GetTextW(v&))
wend
Dele ct Font&
end
Potztausend, The Edits react really aufs hair same. The only Difference lying therein, How I the Text choose. use I The API SendMessageA (So the conventional xprofane Settext/GetText$), then becomes the Unikode gehäckselt. take I against it SendMessageW, then becomes with both Edits everything correctly. transfer.
|
| | | | |
|
AnswerThemeninformationenthis Topic has 3 subscriber: |