| |
|
|
- Page 1 - |
|
 Dietmar Horn | Ciao,
kennt jemand eine Möglichkeit, auf einem PC mit deutschem Windows ein Programm zu schreiben, welches sowohl deutschen Text als auch polnischen Text anzeigt? Im Polnischen gibt es wohl 8 Buchstaben, die nicht auf der deutschen Tastatur zu finden sind.
Beispiel: Ein Listview, in dem in der ersten Spalte ein deutscher Begriff steht und in der zweiten Spalte jeweils der übersetzte deutsche Begriff dazu.
Wenn ich z.B. von google.pl einen polnischen Text in ein Word-Dokument kopiere, dann werden die polnischen Buchstaben korrekt angezeigt. Wo nimmt da das deutsche Windows den polnischen Zeichensatz her (im Word-Dokument wird dabei als Font Times New Roman angezeiht)? In einer normalen Textdatei mit ASCII-Zeichensatz klappt das jedoch nicht.
Saluto Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...]  Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...]  | 19.05.2009 ▲ |
|
|
|
|
| |
|
- Page 3 - |
|
 Frank Abbing |
Korrektur: Zu ansikompatiblen Controls führen die APIs CreateWindowA und CreateWindowExA.
Gegenkorrektur: z.B. CreateWindowA und CreateWindow sind immer identisch. Die normale Variante ist eben immer die Ansi-Variante, beweise das Gegenteil... 
Doch ansonsten hast du recht. Ob die Messagenummern sich zwischen Ansi- und Unicode-Controls unterscheiden, habe ich noch nicht überprüft, mag es aber nicht so recht glauben.
Glaube es ruhig. Besser noch, schau dir einfach ein paar Headerfiles an.  |
|
|
| |
|
|
|
 Nico Madysa | Asche auf mein Haupt, wir sehen uns in nem halben Jahr wieder, bin unterwegs nach Canossa. 
Ich habe mal per API und Messages probiert, ein halbwegs funktionierendes Unicode-Listview zu erzeugen, doch kann ich bisher noch nur in die erste Spalte Daten eintragen und es ist recht kompliziert. Eine ListViewW.dll wäre also überaus praktisch.  |
|
|
| |
|
|
|
 Frank Abbing |
...doch kann ich bisher noch nur in die erste Spalte Daten eintragen und es ist recht kompliziert. Eine ListViewW.dll wäre also überaus praktisch.
Genau diese Kompliziertheit hatte mich ja dazu bewogen, den ganzen Mist mal in simpleren Funktionen zu bündeln.
Ich glaube, eine Unicode-Variante der Listview.dll lohnt aber nicht. Die Anwendungsfälle sind zu selten. Wenn ich das richtig sehe, können polnische Computerbenutzer ja durchaus ihren Zeichensatz per Ansi benutzen, wenn der Computer in polnisch konfiguriert wurde. Vielleicht sollte Dietmar das auch einfach machen...  Ne, nur Spass...  |
|
|
| |
|
|
|
 | iF, Beitrag=52553, Zeitpunkt=29.05.2009
Auch wenn vlt. hier noch nicht relevant, so ist das UTF-Problem wohl von dannen wenn wir endlich aufhören, normale Windows-Controls zu verwenden sondern (wie es sich gehört) unsere Dialoge per HTML erzeugen. Da ich mich leider nicht zerreissen kann, werden wir darauf wohl aber noch etwas warten müssen - oder jemand anderes nimmt sich der Sache an. Frabbing, Beitrag=52554, Zeitpunkt=29.05.2009Die Lösung ist sehr simpel und necessario ganz bestimmt keine HTML-Controls (tz).
Zumindest gibt es keine simplere Lösung, bedenke das mein Plan alle Controls umfasst und nicht etwa nur ListViews.
Ich lasse mich aber gerne vom Gegenteil überzeugen und vielleicht kannst Du derzeit eine simple Lösung in der ListView.Dll anwenden. |
|
|
| |
|
|
|
 Frank Abbing |
Ich lasse mich aber gerne vom Gegenteil überzeugen und vielleicht kannst Du derzeit eine simple Lösung in der ListView.Dll anwenden.
Ich sagte bereits:
Ich glaube, eine Unicode-Variante der Listview.dll lohnt aber nicht. Die Anwendungsfälle sind zu selten.
So ein Listview ist aber schnell erzeugt: KompilierenMarkierenSeparierenDef CreateWindowExW(12) !user32,CreateWindowExW
Declare lv&,class#
Dim class#,512
Cls
StringW class#,0=SysListView32
lv&=CreateWindowExW($200,class#,0,$50000041,100,100,200,200,%hwnd,1,%hinstance,0)
WaitInp
|
|
|
| |
|
|
|
 Nico Madysa | Mag durchaus sein, doch dann kommt der wahre Divertimento: Spaltendefinition (erträglich) und Hinzufügen der Zeilen (woran ich, wie bereits erwähnt, scheitere), sowie eventuelle Suchfunktionen, etc.  |
|
|
| |
|
|
|
 | Dein Beispiel ist keine Lösung Frank, ein CLS ist auch keine Lösung per einen Medienplayer.
Du legst ja lediglich ein Control an, Dietmar braucht aber 2 Spalten...
Ich sehe Deine simple Lösung (noch) nicht. |
|
|
| |
|
|
|
 Frank Abbing |
Dein Beispiel ist keine Lösung Frank, ein CLS ist auch keine Lösung per einen Medienplayer
Habe auch nicht vor, einen Medienplayer zu schreiben. Das Beispiel ist das was es sein soll: Ein Beispiel.
...doch dann kommt der wahre Divertimento: Spaltendefinition (erträglich) und Hinzufügen der Zeilen
Wie gesagt, aus diesem Grund hab ich die Listview.dll damals geschrieben, um die Sachen einfacher zu gestalten. Mein Quellcode ist bereits fertig in Assembler, einen zweiten in XProfan werde ich nicht mehr schreiben. Sonst hätte ich dir hier was kopiert. Nico, bequeme doch mal die Cerca. Es gibt einige Quellcodes per Listviews. Die mußt du doch nur noch anpassen an die Wide-Strings. Dafür bietet OLE32 einige Funktionen.  |
|
|
| |
|
|
|
 Nico Madysa | Tada!  KompilierenMarkierenSeparierenStruct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
Struct LVCOLUMN = Mask&, FMT&, CX&, Text&, cchTextMaxLen&, Subitem&
Struct LVITEM = IMASK&, ITEM&, ISUBITEM&, State&, StateMask&, ITEXT&, ITEXTMAX&, IIMAGE&, ILPARAM&
proc UTF
parameters text$
declare b#
Dim b#,2*len(text$)+2
StringW b#,0 = text$
text$ = Char$(b#,0,SizeOf(b#)-2)
return text$
endproc
proc CreateW
if %pCount > 10
parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,exstyle&
else
parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&
var exstyle& = 0
endif
Class$ = UTF(Class$)
Name$ = UTF(Name$)
var cs# = New(CREATESTRUCT)
With cs#
.lpCreateParams& = SizeOf(cs#)
.hInstance& = hInst&
.hMenu& = if(u_IsMenu(id%),id%,0)
.hwndParent& = pWnd&
.cy% = dy%
.cx% = dx%
.y% = y%
.x% = x%
.style& = style&
.lpszName& = Addr(Name$)
.lpszClass& = Addr(Class$)
.dwExStyle& = exstyle&
EndWith
var handle& = u_CreateWindowExW(exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
ifnot handle&
Class$ = WinError$(%WinError)
MessageBox(Es trat folgender Fehler auf:
+ Class$,F E H L E R !!!,4096)
endif
Dispose cs#
return handle&
endproc
$10 = von A-Z
$20 = von Z-A
$04 = keine Mehrfachauswahl
subproc Create.GridBoxW
parameters pWnd&,def$,stl%,x%,y%,dx%,dy%
declare s$
var hList& = CreateW(SysListView32,,$50000209 + stl%,x%,y%,dx%,dy%,pWnd&,1000,%hInstance,$200)
u_SendMessageW(hList&,$1036,0,$00000023)
var LVC# = New(LVCOLUMN)
With LVC#
.Subitem& = 0
.MASK& = $7
whileloop 0,(len(def$,;) 3) - 1
s$ = SubStr$(def$,3*&loop + 1,;)
.TEXT& = Addr(s$)
.FMT& = val(SubStr$(def$,3*&loop + 2,;))
.CX& = val(SubStr$(def$,3*&loop + 3,;))
.cchTextMaxLen& = len(s$)
u_SendMessageW(hList&,$1061,&loop,LVC#)
EndWhile
EndWith
Dispose LVC#
return hList&
endproc
proc InsertStringW
parameters hList&,s$,index%
declare ss$
var LVI# = New(LVITEM)
var d$ = UTF(Get(ListDel))
With LVI#
.IMASK&=$1
.ITEM& = index%
whileloop len(s$,d$)
ss$ = SubStr$(s$,&loop,d$)
.iText& = Addr(ss$)
.ITEXTMAX& = len(ss$)
.ISUBITEM& = &loop - 1
ifnot &loop - 1
u_SendMessageW(hList&,$104D,index%,LVI#)
else
u_SendMessageW(hList&,$102E,index%,LVI#)
u_SendMessageW(hList&,$104C,index%,LVI#)
endif
EndWhile
EndWith
endproc
declare hUser&,hGDI&,hKrnl&,hList&,clip$
cls
var font& = Create(Font,Times New Roman,16,0,0,0,0)
hUser& = ImportDLL(USER32,u_)
hList& = Create(GridBoxW,%hWnd,UTF(Welch)+;0;100;+UTF(eine)+;2;200;+UTF(Liste!)+;1;100,$00,100,5,410,200)
InsertStringW(hList&,UTF(Ich|bin|toll!),0)
InsertStringW(hList&,UTF(Ich|etwa|nicht?),1)
InsertStringW(hList&,UTF(Doch,|du|auch.),2)
SetFont hList&,font&
whilenot IsKey(27)
waitinput
wend
FreeDLL hUser&
FreeDLL hGDI&
FreeDLL hKrnl&
4 href='./../../funktionsreferenzen/xprofan/deleteobject/'>DeleteObject font&
end
Create(GridBoxW) und InsertStringW() sollten wie ihre Ansi-Pendants funktionieren. Strings werden im Unicodeformat erwartet. Die Spaltendefinition in Create(GridBoxW) erwartet die Spaltentitel in Unicode, den Rest in Ansi. (so wars per mich einfacher. ) Den kurzen bisherigen Tests hat der Code grandios standgehalten. |
|
|
| |
|
|
| |
|
- Page 4 - |
|
|
 | |
|
| |
|
|
|
 Frank Abbing | Geht doch anständig.  Und jede Wette, du hast was dazu gelernt.
Die Control-ID sollte sich noch bei jedem Listview ändern. |
|
|
| |
|
|
|
 Nico Madysa | Bäh, das sollen die anderen machen, ich will jetzt ins Bett. 
[offtopic] Morgen will ich nämlich fit sein, wenn alles klappt, steht mir dann die Konfiguration eines eigenen Heim-DSL-Anschlusses bevor.  [/offtopic] |
|
|
| |
|
|