Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   LISTBOX und UNICODE/UTF8 (https://www.delphipraxis.net/185746-listbox-und-unicode-utf8.html)

wschrabi 3. Jul 2015 20:37

LISTBOX und UNICODE/UTF8
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,
ich habe einen Filenamen wo ein UTF8 Zeichen drin ist. Diese Datei sieht man schon im Browser richtig als accute c.
Doch wenn ich in eine Listbox diesen STRING mit Listbox2.Items.Add ( Filename[i] ) hinzufüge sieht man zur Laufzeit in der Box einen Blöden Strich statt accute c.
IM XE6 Delphi IDE sieht man aber schön unter UNTERSUCHEN, dass das accute c da ist.
Was mache ich falsch? Bitte um Rat. DANKE
Delphi-Quellcode:
procedure TForm1.MakeFileList(teil:array of string; Verzeichnis: string);
var
  Files: TStrings;
  i: integer;
begin
  Files := TStringList.Create;
  try
  //  procedure FindAllFiles(const FileList: tstrings;RootFolder: string; Maske: array of string; Recurse: Boolean = True);

    FindAllFiles(files, Verzeichnis, teil, false);
    for i := Files.Count -1 downto 0 do
    begin
        ListBOx2.Items.Add(Unicodestring(Files[i]));
        //DeleteFile(Files[i]);
    end;



  finally

    Files.Free;
  end;
end;

Bernhard Geyer 3. Jul 2015 21:04

AW: LISTBOX und UNICODE/UTF8
 
Die Listbox hatbeine Schriftart eingestelt die das entsprechend Zeichen nicht beinhaltet

wschrabi 3. Jul 2015 21:12

AW: LISTBOX und UNICODE/UTF8
 
HabS.
Delphi-Quellcode:
        ListBOx2.Items.Add(Utf8tostring(Files[i]));
dAS WARS!

Jetzt noch eine FRAGE:
Ich möchte acuh andere UTF8Strings in eine Stringlist anzeigen.
dazu mache ich mit dem kommerzi. Tool ADV IMPORT von EMS ein CSV IMPORT in ein Stringgrid. Im CSV FIle sind UTF8Stringsdrin.
Geht das irgendwie mit:


procedure TForm1.qGetTextConv(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
Text := Sender.AsString;
end;

Gibt es so eine Handle bei stringgrids? Ich kenn das nur von MySQL-Querys.
danke

wschrabi 3. Jul 2015 21:54

AW: LISTBOX und UNICODE/UTF8
 
ich habs soweit so:
Wenn ich bei den OPTIONEN des Stringgrid goEditing auf TRUE setze, kommt der Eventhandler OnGetEditText:
Da hab ich das reingeschrieben bzw. verlinkt.
Delphi-Quellcode:
 
procedure TForm1.StringGrid2GetEditText(Sender: TObject; ACol, ARow: Integer;
  var Value: string);
begin
   Value := UTF8ToString(Value);

end;
Wenn man jetzt in die Celle reinklickt geht der blöde Strich in ein NORMALES c ohne accute über.

Wenn ich keinen Even einbaue und dann die Zelle anklicke um sie zu editieren, sehe ich das c mit accute. Doch beim Verlassen bzw bei Enter steht dann wieder der blöde strich.
Der Strich wird wohl die UTF8 Repräsentation des c accute sein. Aber wie mache ich, dass er mir ohne Editing das c accute anzeigt?
danke

wschrabi 3. Jul 2015 23:15

AW: LISTBOX und UNICODE/UTF8
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1307590)
Die Listbox hatbeine Schriftart eingestelt die das entsprechend Zeichen nicht beinhaltet

Danke, gute Idee. Aber wieso zeigt er dann das Zeichen richtig an, wenn ich im Edit Modus auf die Zelle klicke?
Und welchen CHARSET muss man wo einstellen und definieren damit Unicode angezeigt wird.
danke

wschrabi 3. Jul 2015 23:40

AW: LISTBOX und UNICODE/UTF8
 
Tatsächlich mit ARIAL sieht man zwar nicht die accute aber das c ist statt dem blöden Strich da. Besten DANK!:-D:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 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