Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi griechische Zeichen (Unicode) im Delphi Editor (https://www.delphipraxis.net/52185-griechische-zeichen-unicode-im-delphi-editor.html)

Bernhard Geyer 25. Aug 2005 09:47

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Bernhard Geyer
Für Άrabĩ habe ich WideChar($0386)+WideString('rab')+WideChar($0129) im Quellcode stehen - und es funktioniert.

Also geht es mit D6 + SP's

Delphi-Quellcode:
const MsgBoxText:WideString = WideChar(1057)+WideChar(1085)+WideChar(1110)+WideChar(1078)+WideChar(1086)+WideChar(1082)+'.txt';
Der hier kompiliert erst garnicht wegen "inkompatiblen Typen".
Delphi-Quellcode:
const MsgBoxText:WideString = WideChar($0386)+WideString('rab')+WideChar($0129);
Gibt mir eine wunderbare und nachvollziehbare Exception in einem Delphi-Package während des Kompilierens ...

Beides: D4

Dann ist D4 definitiv zu alt um halbwegs vernünftig mit Unicode zu arbeiten.

Olli 25. Aug 2005 09:55

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von Bernhard Geyer
Dann ist D4 definitiv zu alt um halbwegs vernünftig mit Unicode zu arbeiten.

Aber wo ist die Grenze? D5, D6?

jfheins 25. Aug 2005 09:56

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Also so bekomme ich eine MessageBox mit (für mich unverständlichen :mrgreen: ) Unicode-Zeichen - ich vermute, das gewünschte Ergebnis ;)
Delphi-Quellcode:
program Test;
uses
   Windows;

const MsgBoxText: Array[1..6] of WideChar = (#1057,#1085,#1110,#1078,#1086,#1082);

begin
   MessageBoxW(0, @MsgBoxText[1], nil, 0);
end.
Also muss man mit einem Array of WideChar arbeiten, statt einem WideString ... Delphi & Unicode :roll:

P.S. const MsgBoxText:WideString = WideChar($0386)+WideString('rab')+WideChar($0129); geht bei mir ;)

Olli 25. Aug 2005 10:04

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von jfheins
Also muss man mit einem Array of WideChar arbeiten, statt einem WideString ... Delphi & Unicode :roll:

Sehr schöne Lösung. Dann werde ich gleich mal mein Uniconv aufrüsten ;) ... dann unterstützt es diese Syntax auch.

Union 25. Aug 2005 10:10

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von jfheins
Also so bekomme ich eine MessageBox mit (für mich unverständlichen :mrgreen: ) Unicode-Zeichen - ich vermute, das gewünschte Ergebnis ;)
Delphi-Quellcode:
program Test;
uses
   Windows;

const MsgBoxText: Array[1..6] of WideChar = (#1057,#1085,#1110,#1078,#1086,#1082);

begin
   MessageBoxW(0, @MsgBoxText[1], nil, 0);
end.
Also muss man mit einem Array of WideChar arbeiten, statt einem WideString ... Delphi & Unicode :roll:

P.S. const MsgBoxText:WideString = WideChar($0386)+WideString('rab')+WideChar($0129); geht bei mir ;)

Damit es fehlerfrei funktioniert muss es heissen (Nullbyte am Ende!):
Delphi-Quellcode:
const MsgBoxText: Array[1..7] of WideChar = (#1057,#1085,#1110,#1078,#1086,#1082,#0);

Olli 25. Aug 2005 10:28

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von Union
Damit es fehlerfrei funktioniert muss es heissen (Nullbyte am Ende!):
Delphi-Quellcode:
const MsgBoxText: Array[1..7] of WideChar = (#1057,#1085,#1110,#1078,#1086,#1082,#0);

Stimmt prinzipiell. Ist aber glaube ich nur an Paragraphen oder DWORD-Grenzen relevant, weil ansonsten immer noch ne 0 dranhängt. Außerdem ist es irrelevant, weil noch ein Cast stattfindet (bei MessageBox) - Delphi sorgt also dafür, daß es nullterminiert ist. (Zumindest in unserem Fall).

Aber recht hast du, sicher ist sicher ;)

Union 25. Aug 2005 12:41

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Union
Damit es fehlerfrei funktioniert muss es heissen (Nullbyte am Ende!):
Delphi-Quellcode:
const MsgBoxText: Array[1..7] of WideChar = (#1057,#1085,#1110,#1078,#1086,#1082,#0);

Stimmt prinzipiell. Ist aber glaube ich nur an Paragraphen oder DWORD-Grenzen relevant, weil ansonsten immer noch ne 0 dranhängt. Außerdem ist es irrelevant, weil noch ein Cast stattfindet (bei MessageBox) - Delphi sorgt also dafür, daß es nullterminiert ist. (Zumindest in unserem Fall).

Aber recht hast du, sicher ist sicher ;)

Bei mir gab es OHNE #0 nämlich Сніжок.txt säep98füuj afölkj aösfdkl ösldfkj etc. Es hängt vom momentanen Zustand und der Fragmentierung usw. ab, was passiert. Es klappt auch häufiger dass man einfach StrPas wegläßt... und mal wieder nicht.

Olli 25. Aug 2005 13:34

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von Union
Bei mir gab es OHNE #0 nämlich Сніжок.txt säep98füuj afölkj aösfdkl ösldfkj etc. Es hängt vom momentanen Zustand und der Fragmentierung usw. ab, was passiert. Es klappt auch häufiger dass man einfach StrPas wegläßt... und mal wieder nicht.

Funktioniert es bei dir ohne das @ und die Referenzierung des Elements? Dann müßte definitiv ein impliziter Cast passieren.
Irgendwie gefällt mir C++ immer besser :mrgreen: ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr.
Seite 2 von 2     12   

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