Virtualtreeview Umlaute

Rund um die LCL und andere Komponenten
Antworten
arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Virtualtreeview Umlaute

Beitrag von arturx »

Ein Virtualstringtree soll Umlaute etc. anzeigen :

Code: Alles auswählen

procedure Tform.vtrv_GetText(Sender: TBaseVirtualTree;  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;  var CellText: WideString);
 begin  celltext := '12-äöpp'; // <--- Anzeige ergibt nur "12-???" 
end;
Wie muss die Zeile richtig konvertiert werden ?
Seltsamerweise fand ich nichts zu diesem Thema im Forum :
(gibt es irgendwo eine Anleitung zum differenzierten Suchen mit mehreren Begriffen und wildcards für die Forenthemen ?)

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: Virtualtreeview Umlaute

Beitrag von Linkat »

Hallo arturx,
wahrscheinlich geht es mit einer ANSI to UTF8 Konvertierung.

Code: Alles auswählen

s:=ANSIToUTF8('äöü');
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Virtualtreeview Umlaute

Beitrag von theo »

Nee, Celltext ist vom Typ WideString, im Editor haben wir UTF-.8, also muss ein UTF8Decode('äöü') her.,

Übrigens, wo hast du jetzt das wieder her?
Bei mir ist das anders deklariert:

Code: Alles auswählen

procedure TForm1.vtrv_GetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: String);
begin
 
end;

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: Virtualtreeview Umlaute

Beitrag von arturx »

Leider klappt es weder mit "UTF8decode" noch mit "ANSIToUTF8"
Zusatzinfos :
die Quelltext Seite zeigt UTF-8 als Codierung.
 Kann das Problem mit der codepage bei der Compilierung des virt..-package zu tun haben ?
 Außerdem fällt mir auf, das zwischen den einzelnen Zeichen -auch wenn man "einfache" Zeichen wie a..x etc nimmt-
 jeweils ein Leerzeichen zu sein scheint ("a b c ...")
Zum Testen reicht einfachstes Erstellen des knotens :

Code: Alles auswählen

procedure form.oncreate; begin vst_trvw.addChild(nil,nil); end;

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Virtualtreeview Umlaute

Beitrag von theo »

Imho hast du wiieder eine falsche Version von VTV erwischt.

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: Virtualtreeview Umlaute

Beitrag von arturx »

Yep, da scheinen sich die Beiträge gekreuzt zu haben.
Als ich die Deine Version von ongettext sah, fiel mir natürlich auch Celltext: widestring <--> string auf.
Das folgende Debuggen zeigte dann auch, dass mein virtualtree.dogettext ebenfalls mit string arbeitet.
Ich vermute, dass widestring noch aus meinen Basteleien mit der Vorgänger Version stammte
(siehe Posting "virtualtreeview : fullexpand und nodecount")
Das erklärt jetzt auch die Leerzeichen zwischen den einzelnen Zeichen.
Nun aber schnell posten, bevor wir wieder parallel arbeiten !
Danke Theo !!

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Virtualtreeview Umlaute

Beitrag von theo »

OK, kannst gleich den ganzen Quellcode nach WideString durchsuchen.
Der sollte nämlich unter Lauzarus in der Kommunikation mit Komponenten so gut wie nie vorkommen.

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: Virtualtreeview Umlaute

Beitrag von arturx »

theo hat geschrieben:OK, kannst gleich den ganzen Quellcode nach WideString durchsuchen.
Der sollte nämlich unter Lauzarus in der Kommunikation mit Komponenten so gut wie nie vorkommen.
Hatte ich sofort gemacht, nachdem die Ursächlichkeit klar war.
Hineingekommen war widestring beim Experimentieren mit dem Vorgänger-tree per "Alles ersetzen" etc..
Auf alle Fälle ein sinnvoller Hinweis !

andreas8
Beiträge: 1
Registriert: Mo 9. Apr 2012, 11:04
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Wo Abwehrspray billig kaufen?

Beitrag von andreas8 »

Hallo,

habe einen guten Shop für Abwehrsprays gefunden. Dort kauft man Abwehrsprays http://pfefferspray-security.de/abwehrspray.html sehr günstig udn die Preise sind genial!
Auch Pfeffersprays sind dort zu finden!

Antworten