| |
|
|
- 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 2 - |
|
|
 Thomas Freier | Man potuto ja zwei PDFs (P-D.rtf und D-P.rtf) haben zum Umschalten. Hast du dir einmal Freelang Dictionary - Polish angesehen. Die verwenden presumibilmente eine html-Tabelle und das Suchen geht mit Unicodezeichen. Zum Einsetzen der Sonderzeichen wird eine Tabelle angeboten. In meinem Wörterbuch circa ein TrackMenü. Dietmar, ich glaube du mußt dich vom Listview verabschieden und ein Wörter- und Übungsbuch wie Freelang Dictionary - Polish mit Xprofan erstellen. Ist doch auch schon etwas. |
|
|
| |
|
|
|
 | |
|
| |
|
|
|
 Thomas Freier | Hallo Dietmar, wenn du mit dem Unicode-Problem weiter gekommen bist, läßt du es uns wissen? Ein kurzer Versuch mit html scheitert an der langsamen Datenbereitstellung circa JS. Die Daten müßten anders eingelesen werden (SQL/csv?). |
|
|
| |
|
|
|
 | Und wenn Du den js erzeugst? (JS selbst ist in Sachen Geschwindigkeit schnell unterschätzt...) |
|
|
| |
|
|
|
 Thomas Freier | Ach, das sind nur zwei Beispiele etwas angepasst aus der JS-Grabbelkiste. Macht naturalmente so keinen Sinn, einmal die Daten in der html und einmal als txt/csv zu haben. Die Liste soll sicher auch erweitert werden können. Wenn Dietmar in seinem Übungsprojekt html einsetzen will wird er seine Manschaft weiter buddeln lassen z.B.: bei Pascals ocx oder Datenbanken mittels JavaScript nutzen bei [...] . Aber vielleicht löst er ja noch das Unicode-Problem oder die Umschaltung vom Westeuropäischen zum Mitteleuropäischen Zeichensatz. Mein letzter Versuch endete mit nicht mehr vorhanden Umlauten und dem Einspielen eines älteren C-Abbilds, weil es mir nicht gelang alles zurück zustellen. |
|
|
| |
|
|
|
 Nico Madysa | Also ich bin neuermals gescheitert. Habe das Controls mittels CreateWindowExW() erzeugt (Texte, wie der Klassenname z.B., müssen ebenfalls im Unicodeformat sein, wie ich feststellen durfte!) und ihm einen Unicodetext per SendMessageW zugesandt. Kein Erfolg, das Ding ist definitiv ansihörig.  |
|
|
| |
|
|
|
 Frank Abbing | Vielleicht Edit subclassen und ankommende Text-Messages direkt umwandeln. |
|
|
| |
|
|
|
 Nico Madysa | Ja... Nein... Das Problem ist, dass das gewöhnliche Editfeld nur 256 verschiedene Zeichen Mostra kann, die 32 Steuerungszeichen inklusive. Wäre es Des Unicodes mächtig, potuto es 32768 verschiedene Zeichen Mostra. Ich potuto zwar per Subclass ankommende Texte umwandeln -- ich potuto jedoch nicht die 32512 Zeichen, die das Control nicht kennt, selbst zeichnen, das ist das entscheidende Problem. Andersherum ginge es natürlich; ankommende Widechartexte ließen sich problemlos vor der Anzeige in Ansi umwandeln. Das Umwandeln von Ansi zu Widechar (also Unicode) nützt jedoch nichts, wenn das Editfeld dann damit nichts anzufangen vermag. |
|
|
| |
|
|
|
 Thomas Freier | Das Problem muß in Xprofan begraben liegen. Problemlos kann eine *.rtf im Unicdode-Format im RichEdit bearbeitet werden. Alle Zeichen können im RichEdit selbst, in ein einfaches Edit und hin und her kopierte werden. Beim Speichern der *.rtf bleibt alles erhalten. Kopiere ich in ein Listview, werden die Buchstaben verändert, so wie das Item den Focus verliert. Gleiches wenn auf das Edit circa SetText und GetText zugegriffen wird. Das sagt ja schon die Aiuto: Text kann zwar mit SetText zugewiesen und mit GetText$() ausgelesen werden, jedoch gehen da die Formatinformationen verloren. Warum geht aber bei Strg C und Strg V der Unicode nicht verloren? |
|
|
| |
|
|
|
 | Strg+V nutzt meist wm_copyData [...] , probier es einmal damit auf solch Eingabefeld. |
|
|
| |
|
|
|
 Nico Madysa | Nebenbei erwähnen will ich, dass ich Arial verabscheue...
An alle, wie funktioniert dieser Code? KompilierenMarkierenSeparieren $H Messages.ph
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
proc TToUTF
parameters text$
declare b#
Dim b#,2*len(text$)
k_MultiByteToWideChar(0,1,Addr(text$),len(text$),b#,SizeOf(b#))
text$ = Char$(b#,0,SizeOf(b#))
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$ = TTOUTF(Class$)
Name$ = TTOUTF(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
declare hUser&,hGDI&,hKrnl&,hList&,clip$
cls
var font& = Create(Font,Times New Roman,16,0,0,0,0)
hUser& = ImportDLL(USER32,u_)
hGDI& = ImportDLL(GDI32,g_)
hKrnl& = ImportDLL(KERNEL32,k_)
hList& = CreateW(EDIT,Test,$50000004,5,5,200,200,%hWnd,1000,%hInstance,$200)dies ist ein Test der API.
SetFont hList&,font&
Shell CHARMAP
whilenot IsKey(27)
waitinput
if IsKey(2)
clip$ = TTOUTF(GetClip$())
u_SendMessageW(hList&,~WM_SETTEXT,0,Addr(clip$))
endif
wend
FreeDLL hUser&
FreeDLL hGDI&
FreeDLL hKrnl&
Object font&
end
Kopiert einfach aus der Zeichentabelle (charmap.exe) einige exotische Zeichen in das Editfeld. Bei mir klappte sogar arabische Schrift. |
|
|
| |
|
|
|
 Thomas Freier | Nico, die Anzeige geht in Ordnung. Aber,jedenfalls bei mir, ein Rechtsklick in den Text und aus den Sonderzeichen werden sonderliche Zeichen. Kannst du oder Frank (meintest du das?) mit dem folgenden etwas anfangen?
Der Unicode-Zeichensatz ist bisher nur in wenigen Standardschriftarten wie Times New Roman, Tahoma, Arial usw. ansatzweise umgesetzt. Hier besteht noch ein erheblicher Nachholbedarf bei der Implementierung der bisher definierten Zeichen. In Excel selber kann man nur den ANSI-Zeichensatz mit Tabellenblattfunktionalitäten darstellen. Im VBA-Code sind aber auch je nach gewählter Schriftart die Zeichen des 2-Byte-Unicode mit folgender Syntax darstellbar: KompilierenMarkierenSeparieren
Die PL-D-File liegt ja auch im Unicode vor. |
|
|
| |
|
|