Announcement

Collapse
No announcement yet.

Clipboar und Unicode unter WinXP

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Clipboar und Unicode unter WinXP

    Hallo Zusammen !

    Ich habe folgendes Problem unter Windows XP.

    Mein Programm soll auch Zeichen anderer Sprachen unterstützen (z.B. Arabisch). Ich habe eine Memo Komponente in der der Text eingegeben werden kann. Mittels Font.Charset habe ich den gewünschten Zeichensatz eingestellt. Über ASCII - Codes lassen sich dann auch alle gewünschte Zeichen aufrufen.
    Probleme gibt es dann, wenn man unter WinXP mittels der Windows Zeichentabelle den Text zusammenstellt und dann via Clipboard in mein Programm ins Memo einfügen will. Dann gibt es meist nur Fragezeichen. Soweit ich gesehen habe befinden sich Daten im Format CF_UNICODETEXT und CF_TEXT im Clipboard.
    Frage ist nun wie ich diese konvertieren kann; insbesondere dann, wenn der benutzer per STRG+V den text einfügt.

    Vielen Dank im Voraus,

    Holger Teetz

    PS: Hat jemand zufällig einen guten Tipp (Link/Buch, etc) zum Thema Unicode und Delphi ?

  • #2
    <p>Zu Delphi und Unicode empfehle ich die Internetseite von Mike Lischke:<br>
    http://www.delphi-unicode.net </p>
    <p>Die Frage mit der Zwischenablage kann ich nicht direkt beantworten.<br>
    Nur ein paar Gedanken dazu:</p>
    <ul>
    <li>Die Delphi-Standard-Komponente TMemo unterstützt kein Unicode, sondern nur ANSI-Zeichensätze. Deshalb verwendet sie standardgemäß auch nur die CF_TEXT-Einträge aus der Zwischenablage, nicht CF_UNICODETEXT (auch wenn das vorhanden ist).<br>
    Meines Wissens nach kann bei CF_TEXT in der Zwischenablage jedoch nicht gespeichert werden, welcher Zeichensatz verwendet wurde, so dass es bei Zeichen in einem anderen Zeichensatz als den unter den aktuellen Spracheinstellungen angegebenen Konvertierungsprobleme auftreten und am Ende nur Fragezeichen herauskommen.</li>
    <li>In der Unicode-Library von Mike Lischke, die unter http://www.delphi-unicode.net heruntergeladen werden kann, gibt es jedoch Routinen, mit deren Hilfe es möglich sein müsste, den CF_UNICODETEXT-Inhalt der Zwischenablage abzurufen und in dem für das Memo-Feld angegebenen Zeichensatz zu konvertieren.</li>
    <li>Eine Alternative würde darin bestehen, eine visuelle Komponente zu verwenden, die unicode-kompatibel ist. Im Internet gibt es z.B. einige RTF-Komponenten, die auf der RichEdit2-Library (riched20.dll) von Windows aufbauen.</li>
    </ul>
    <p>Ich hoffe, ich konnte damit etwas weiterhelfen.<br>
    Ansonsten wäre auch ich sehr an Informationen über visuelle Unicode-Komponenten interessiert.</p&gt

    Comment

    Working...
    X