Unicode Zeichen aus der Zwischenablage auslesen



  • Hallo zusammen,

    Ich würde gerne ein chinesisches Zeichen (2Byte lang) aus der Zwischenablage auslesen.
    So erhalte ich immer ein falsches Zeichen

    if (Clipboard()->HasFormat(CF_TEXT))              //Text aus Zwischenablage 
        {
        Image1->Canvas->TextOut(0, 0, Clipboard()->AsText);
        }
    

    Mir scheint, als würde so nur 1 Byte ausgelesen.

    Kann mir vielleicht jemand einen Tipp geben, wie ich das Problem beheben könnte !

    DANKE



  • Hab' mal folgendes zum Thema asiatische Schriftzeichen in BCB-Anwendungen gelesen:

    das ist keine ganz triviale Aufgabe. 1.) Müssen Deine Komponenten (z.B. das Grid) in der Lage sein den entsprechenden Font darzustellen (nicht zu verwechseln mit dem CharSet) Oftmals können die Standardkomponenten dieses aber nicht, weil man den Font nicht zuweisen kann. 2.)Empfehlen würde ich Dir sowieso Komponenten den Einsatz von Unicode (http://tnt.ccci.org/delphi_unicode_controls/) wobei ich allerdings nicht weiß ob Access Unicode unterstützt. 3.)Ab Windows2000 oder besser XP ist die Unicode Unterstützung hervorragend.

    Ich hoffe das hilft Dir.



  • Hallo Joe_M

    Erstmal Danke ich dir für deine schnelle Antwort.
    Wenn ich dich also richtig verstehe, ist das Einfügen eines chinesischen Zeichens mittels TextOut(...) wahrscheinlich nicht möglich.



  • Ehrlich gesagt, hab' ich davon keine Ahnung, aber ich hab' mich an die oben zitiete Antwort erinnert...
    Allerdings glaube ich nicht, dass es ohne Unicodefähige Komponenten funktioniert.

    Vielleicht meldet sich ja noch jemand, der es bereits gemacht hat.

    Sorry.



  • Hat vielleicht jemand doch noch eine Idee, wie ich auch Unicode- Zeichen einfügen könnte.
    Wenn ich die Methode PasteFromClipboard() auf ein RichEdit anwende, dann kann ich Unicode- Zeichen in ein RichEdit einfügen.
    Aber leider brächte ich diese Unicode- Zeichen in einem Image, oder Bitmap.

    Danke euch für eure Tipps



  • Mit der API-Funktion ExtTextOutW() sollte das möglich sein.



  • OT-Diskussion in neuen Thread verlagert.


Anmelden zum Antworten