Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unicode Headline in Stringgrid (https://www.delphipraxis.net/74271-unicode-headline-stringgrid.html)

polondo 31. Jul 2006 18:04


Unicode Headline in Stringgrid
 
Hi,

Ich versuche eine Headline die aus Unicode Zeichen besteht in meine Stringgrid einzubauen. Leider bekomme ich dabei nur "?".
Ich benutze die Stringgrid aus den TNTControls die Unicode unterstützen.

So sieht mein Code z.b aus:

Delphi-Quellcode:
StringGrid.Cells[0,0] := 'ردیف';
Woran kann das liegen?

mfg R.

messie 31. Jul 2006 19:01

Re: Unicode Headline in Stringgrid
 
Hallo,

meiner Ansicht nach klappt das nicht, weil die IDE nicht oder nur eingeschränkt unicodefähig ist. Direkte Übergaben von Zeichen in russisch, japanisch etc. kann man zwar sehen, sie basieren aber auf Codepage und Charset-Informationen.
Deinen Unicode mußt Du an der IDE vorbeimogeln, z.B. indem Du z.B. Deine Zeichen in einer Unicode-Datei ablegst, sie als TntStringList lädst und dann die WideStrings übergibst.
Meine Aussagen basieren auf meinem D6 und BCB6. Sollte sich zeigen, daß neuere Versionen der IDE vollständig Unicode-fähig sind würde ich das gerne wissen.

Grüße, Messie

Ydobon 31. Jul 2006 19:50

Re: Unicode Headline in Stringgrid
 
Erst ab 2005 kann man Unicode direkt in der IDE eingeben, natürlich darf man dann nicht vergessen die Unit auch mit UTF-8 Kodierung zu speichern.

Für diese Zeichen eine Alternative wäre:
Delphi-Quellcode:
StringGrid.Cells[0,0] := WideString(#$0631)+#$062F+#$06CC+#$0641;
Damit kommen dann auch die anderen Delphi-Versionen klar.

messie 31. Jul 2006 20:00

Re: Unicode Headline in Stringgrid
 
Ist denn 2005 uneingeschränkt Unicode-fähig?

Grüße, Messie

Ydobon 31. Jul 2006 20:13

Re: Unicode Headline in Stringgrid
 
Schön wär's. Nur die .Net Abteilung, Win32 kann mit Unicode nach wie vor nichts anfangen. Für die .Net Unterstützung ist aber wenigstens die IDE unicodefähig geworden.

Bernhard Geyer 31. Jul 2006 20:20

Re: Unicode Headline in Stringgrid
 
Zitat:

Zitat von messie
Ist denn 2005 uneingeschränkt Unicode-fähig?

Die IDE. AFAIK größtenteils. Die von Borland mitgelieferten VCL-GUI-Komponenten für Win32: Nein.

messie 31. Jul 2006 20:34

Re: Unicode Headline in Stringgrid
 
Zitat:

Zitat von Bernhard Geyer
Die IDE. AFAIK größtenteils. Die von Borland mitgelieferten VCL-GUI-Komponenten für Win32: Nein.

Im Ernst, da muß man auch noch mit den Tnt-Elementen arbeiten? Wo leben wir denn?

Grüße, Messie

Bernhard Geyer 31. Jul 2006 21:00

Re: Unicode Headline in Stringgrid
 
Zitat:

Zitat von messie
Zitat:

Zitat von Bernhard Geyer
Die IDE. AFAIK größtenteils. Die von Borland mitgelieferten VCL-GUI-Komponenten für Win32: Nein.

Im Ernst, da muß man auch noch mit den Tnt-Elementen arbeiten? Wo leben wir denn?

Macht doch die IDE auch :-)

Ansonsten kann ich verstehen das Borland die von ihnen gelieferten VCL-Komponenten nicht mehr unter Win32 Unicodefähig macht:

1, Für den es relevant ist nimmt eh schon TNT oder ElPack oder ist ins .NET oder Java-Lager gewechselt
2, Mit VCL.NET hat man ja Unicode
3, Sollte es mal ein VCL.Win64 geben ist dies auch Unicode-Fähig
4, Es gibt mit .NET 2.0, Win64 und Avalon wichtigere Dinge

Ich selbst setzte schon seit 2002 auf die ElPack-Komponenten und lebe damit sehr gut.

polondo 1. Aug 2006 08:52

Re: Unicode Headline in Stringgrid
 
Danke für die Antworten!!!!

Ich werde jetzt mal versuchen die Zeichen über Ihre Codes einzugeben. Wenn das auch zu stressig wird werd ich wohl oder übel auf das Elpack umsteigen.

mfg R.

messie 1. Aug 2006 09:12

Re: Unicode Headline in Stringgrid
 
Zitat:

Zitat von Ydobon
Erst ab 2005 kann man Unicode direkt in der IDE eingeben, natürlich darf man dann nicht vergessen die Unit auch mit UTF-8 Kodierung zu speichern.

Für diese Zeichen eine Alternative wäre:
Delphi-Quellcode:
StringGrid.Cells[0,0] := WideString(#$0631)+#$062F+#$06CC+#$0641;
Damit kommen dann auch die anderen Delphi-Versionen klar.

Gibt es denn ein Tool was Unicode-Strings in diese Form konvertiert, so daß man sie als Ressourcendatei einbinden kann?

Grüße, Messie

DGL-luke 1. Aug 2006 10:46

Re: Unicode Headline in Stringgrid
 
Ich hab da mal was vorbereitet™...

http://www.delphipraxis.net/internal...=587777#587777

Ydobon 1. Aug 2006 17:28

Re: Unicode Headline in Stringgrid
 
In einem Programmierforum gibt es natürlich auch eine einfache Methode für den kleinen Hunger zwischendurch.

Delphi-Quellcode:
function UniHexe(wstr: WideString): String;
var i: Integer;
begin
  i:=1;
  while i<=Length(wstr) do
  begin
    // falls ein paar Surrogates herumschwirren und der original Codepunkt gesucht ist
    //if (Ord(wstr[i])>$D800) and (Ord(wstr[i])<$DBFF) then
    //begin
    //  result:=result+' #$'+IntToHex((Ord(wstr[i]) shl 10) + Ord(wstr[i+1]) + $FCA02400, 6);
    //  Inc(i);
    //end else
    // zur direkten Eingabe müssen aber die Paare genommen werden
    result:=result+' #$'+IntToHex(Ord(wstr[i]), 4);
    Inc(i);
  end;
end;
Nebenbei, in Word den Cursor neben das interessierende Zeichen und Alt+C drücken zeigt den Code auch an.

DGL-luke 1. Aug 2006 18:13

Re: Unicode Headline in Stringgrid
 
Tja... nur wie kriegst due denn den wstring erst mal rein in die Funktion? ;)

Ydobon 1. Aug 2006 18:54

Re: Unicode Headline in Stringgrid
 
UTF8Decode(TStringList.Text) etc. ?

Ich gehe einfach einmal davon aus, dass wenn jemand die Zeichencodierung für eine Ausgabe in einem Delphi-Programm benötigt, auch Möglichkeiten zur Eingabe vorhanden sein dürften. Polondo sprach ja direkt von den TntUnicode Controls.

Wenn alle Stränge reißen
Delphi-Quellcode:
  hndl:=CreateWindowExW(WS_EX_CLIENTEDGE, 'Edit', Nil, WS_CHILD or WS_VISIBLE, 10, 10,
                      121, 21, Handle, 0, HInstance, Nil);
// Ctrl+V
len:=GetWindowTextLengthW(hndl);
SetLength(wstr, len);
GetWindowTextW(hndl, PWChar(wstr), len);
tut es auch.


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

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