ASCII Zeichen darstellen



  • Hallo,

    Ich würde gerne ASCII Zeichen z.B. solche Dreiecke: ▲ ▼ ► ◄ in meinem Programm Darstellen. Irgendwie hab ich nur einfache Zeichen hingekommen aber leider keine Pfeile oder Dreiecke. Weiß jemand Rat?

    PS: Ich verwende Embarcadero C++ Builder 2010 ...



  • TheGeek schrieb:

    Hallo,

    Ich würde gerne ASCII Zeichen z.B. solche Dreiecke: ▲ ▼ ► ◄ in meinem Programm Darstellen. Irgendwie hab ich nur einfache Zeichen hingekommen aber leider keine Pfeile oder Dreiecke. Weiß jemand Rat?

    PS: Ich verwende Embarcadero C++ Builder 2010 ...

    EditControl->Text="\xAB";

    AB ersetzt Du einfach durch den jeweiligen Hexcode.

    mfg Martin

    P.S.: Bei Unicode sind's dann halt allerdings 2 Byte also "\xAB\xCD";
    P.P.S: Die erforderlichen Codes mußt Du selber raussuchen. Evt. mußt Du natürlich auch entsprechende Fonts setzen.



  • Danke für die schnelle Antwort. Es klappt auch ... fast.
    Das Problem ist das wenn ich z.B.:

    EditControl->Text="\xAB";
    

    mache geht es und es wird ein Doppelpfeil gezeigt. Jedoch wenn ich:

    EditControl->Text="\xAB\xCD";
    

    versucht er die Zeichen hintereinander zu schreiben.
    Ich möchte gerne einen Unicode-Pfeil "02C4" und "02C5" verwenden.



  • TheGeek schrieb:

    Danke für die schnelle Antwort. Es klappt auch ... fast.
    Das Problem ist das wenn ich z.B.:

    EditControl->Text="\xAB";
    

    mache geht es und es wird ein Doppelpfeil gezeigt. Jedoch wenn ich:

    EditControl->Text="\xAB\xCD";
    

    versucht er die Zeichen hintereinander zu schreiben.
    Ich möchte gerne einen Unicode-Pfeil "02C4" und "02C5" verwenden.

    Da geht's so, gerade ausprobiert:

    Edit2->Text = L"\x2190 Hello";
    

    Ergibt einen Pfeil nach links. Getestet mit WinXP und Arial.

    mfg Martin



  • Edit2->Text = L"\x2190 Hello";
    

    geht perfekt !

    Was bedeutet das "L" bei der Zuweisung? Denn ohne das L gehts nicht 😉

    Edit:

    Habe auch grade gemerkt das wenn man Strings verketten möchte dann die Formatierung irgendwie verloren geht und das zeichen dann nicht angezeigt wird. (es wird nur ein Fragezeichen angezeigt)

    Zeichen = L"\x02C4";
    FrmMain->MeinLabel->Caption = RightStr(LeftStr((AnsiString)Daten->Strings[79].Trim(),74),5).Trim() + " - " + Zeichen;
    

    Wie kann ich das lösen?



  • TheGeek schrieb:

    Edit2->Text = L"\x2190 Hello";
    

    geht perfekt !

    Was bedeutet das "L" bei der Zuweisung? Denn ohne das L gehts nicht 😉

    Das L bedeutet, daß die Zeichenkette aus wide characters beseteht.

    TheGeek schrieb:

    Edit:

    Habe auch grade gemerkt das wenn man Strings verketten möchte dann die Formatierung irgendwie verloren geht und das zeichen dann nicht angezeigt wird. (es wird nur ein Fragezeichen angezeigt)

    Zeichen = L"\x02C4";
    FrmMain->MeinLabel->Caption = RightStr(LeftStr((AnsiString)Daten->Strings[79].Trim(),74),5).Trim() + " - " + Zeichen;
    

    Wie kann ich das lösen?

    Ich arbeite noch nicht wirklich mit BCB 2010 ich glaube aber gesehen zu haben, daß der AnsiString dir die Wide Characters kaput macht. Nimm statt dessen UnicodeString

    mfg Martin



  • mgaeckler schrieb:

    Ich arbeite noch nicht wirklich mit BCB 2010 ich glaube aber gesehen zu haben, daß der AnsiString dir die Wide Characters kaput macht. Nimm statt dessen UnicodeString

    Nimm einfach "String" statt "AnsiString" oder "UnicodeString".


Anmelden zum Antworten