Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie kann ich Unicodezeichen "schreiben" (https://www.delphipraxis.net/74344-wie-kann-ich-unicodezeichen-schreiben.html)

xZise 1. Aug 2006 18:07


Wie kann ich Unicodezeichen "schreiben"
 
Wie kann ich das Unicodezeichen 25BC bzw 25B2 zeichnen?

DGL-luke 1. Aug 2006 18:12

Re: Wie kann ich Unicodezeichen "schreiben"
 
Wie meinst du das?

Delphi-Quellcode:
car s: WideString;

s := WideChar($25BC) + WideChar($25B2);

DrawTextW(...);

xZise 1. Aug 2006 19:25

Re: Wie kann ich Unicodezeichen "schreiben"
 
Eigentlich wollte ich auf einen Button einen "Pfeil nach oben" schreiben. Denn habe ich auch gefunden (Font := Arial). Und das sind diese beiden Unicode zeichen... Und jetzt weiß ich nicht, wie ich einen String mit unicodezeichen erstelle.

mkinzler 1. Aug 2006 19:35

Re: Wie kann ich Unicodezeichen "schreiben"
 
WideString

xZise 1. Aug 2006 19:37

Re: Wie kann ich Unicodezeichen "schreiben"
 
So wie bei DGL-Luke?

Delphi-Quellcode:
var s: WideString;
{...}
s := WideChar($25BC) + WideChar($25B2);
Button1.Caption := s;

himitsu 1. Aug 2006 19:38

Re: Wie kann ich Unicodezeichen "schreiben"
 
Die VCL ist Ansi ... mit Unicode ist da nichts zu machen!



Ich schreibe zwar in meinem DataRescue UnicodeStrings in VCL-Komponenten und lese den Inhalt auch als Unicode aus, allerdings geht das eigentlich garnicht, denn dafür müßtest du die VCL-Komponenten entsprechend manipulieren, so daß sie Unicodetaulich sind, aber es ist den Aufwand nicht wert ... nim dafür lieber entsprechende UnicodeKomponenten.

CalganX 1. Aug 2006 19:39

Re: Wie kann ich Unicodezeichen "schreiben"
 
Das wird nicht gehen.
Problem ist, dass die normalen VCL-Controls kein Unicode unterstützen. Dafür bräuchtest du die TNT Controls.

Allerdings würde es für deinen Zweck sogar ausreichen dir eine der Windows-Schriftarten mit Zeichen zu nehmen und dort einen Pfeil zu suchen. Die meisten Symbole, die in Windows verwendet werden (bspw. das X oder das Minimieren-Symbol) sind in Schriftarten gespeichert. Ich kann dir aber jetzt nicht aus dem Stehgreif den Namen sagen. Musst mal danach suchen.

Chris

mkinzler 1. Aug 2006 19:39

Re: Wie kann ich Unicodezeichen "schreiben"
 
Wenn Button z.B. vom typ TTnTButton ist, ja.

xZise 1. Aug 2006 20:18

Re: Wie kann ich Unicodezeichen "schreiben"
 
Nein es ist ein tXiButton ;)

Nagut... habt ihr vielleicht einen Tipp, wie ich trotzdem ein "hoch"/"runter" Pfeil zeichnen kann?

SirThornberry 1. Aug 2006 20:31

Re: Wie kann ich Unicodezeichen "schreiben"
 
Ganz einfach. Nimm als Schriftart "Symbol" und schau dann in der Zeischentabelle nach welches zeischen das ist.
Folgendes Zeischen ist bei der Schriftart "Symbol" ein Pfeil nach unten: ß

himitsu 1. Aug 2006 20:35

Re: Wie kann ich Unicodezeichen "schreiben"
 
Zitat:

Zitat von xZise
himitsu: Falscher Thread?

jo, hatte ich och grad gemerkt, als ich hier meine Antwort nicht sah o.O



Du kannst es ja mal versuchen.

Delphi-Quellcode:
Procedure SetText(Const E; S: WideString);
  Begin
    If TObject(E) is TLabel Then Begin TLabel(E).Caption := S; Exit; End;
    SendMessageW(TWinControl(E).Handle, WM_SETTEXT, 0, LongInt(PWideChar(S)));
  End;
Mit dieser Prozedur kannst du einen WideString an ein VCL-Control senden, welches von TControl abgeleitet ist, oder an ein TLabel und Nachfolger dessen.

Aber wie gesagt, du wirst bemerken, daß bei dir der angezeigt Text meißtens wieder einem in einen AnsiString umgewandelten Text entsprechen wird, da die meißten Komonenten intern die AnsiVersion sind.

Du müßtest also das entsprechende Window als WideVersion klonen und diesen Klon für das AnsiOriginal einschleußen.

Lannes 1. Aug 2006 23:11

Re: Wie kann ich Unicodezeichen "schreiben"
 
Hallo,

die Schriftart zur Darstellung der 'X' usw. ist Marlett:
Zeichen Pfeil nach oben = 't'
Zeichen Pfeil nach oben = 'u'

himitsu 2. Aug 2006 11:36

Re: Wie kann ich Unicodezeichen "schreiben"
 
Zitat:

Zitat von Lannes
die Schriftart zur Darstellung der 'X' usw. ist Marlett.

Aber nur in den Windows ohne XP-Style, mit 'nem Style sind das ja kleine Bildchen,
ansonsten sind ja fast alle kleinen (meist schwarzen/einfarbigen) Grafigen im alten Windows-Style aus Marlett, oder irgendwo anders her ^^

Zumindestens Marlett (Arial, Courier, New Courier, Small Fonts, Times New Roman, ...) kann man also "guten" Geissens verwenden, weil das einer der wenigen Fonts sein wird, welche sich mit sehr großer Sicherheit auf allen Windowsrechnern befindet und befinden wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz