FreePascal (FPC) a Lazarus > Obecné

VirtualStringTree nesprávne zoraďuje

(1/1)

Slavomir:
Ahojte,
ak použijem v Lazaruse komponent TLazVirtualStringTree, funguje všetko dokonale a hlavne rýchlo s výnimkou radenia záznamov.
Používam procedúru OnCompareNodes, ktorá mi porovnáva dva texty. Tie položky, ktoré začínajú s diakritikou, mi však radí až na koniec všetkých ostatných  položiek.
Teda mi nedáva poradie A,Á,B,C, Č, D, Ď - ale A, B, C ... X, Y, Z, Á, Č, Ď, Š, Ť, Ž atď.
Skúšal som využiť aj vlastnosť Header.Options.hoHeaderClickAutoSort - radí takisto takisto rýchlo, ale takisto nesprávne.
Ako dosiahnuť správne radenie? Dočasným zrušením diakritiky pred porovnávaním? U slovenských a českých písmen by som to ako tak vedel, ale iné zahraničné znaky nemám šancu. :(
Vďaka za radu.

pf1957:

--- Citace: Slavomir  15-09-2022, 07:25:16 ---Používam procedúru OnCompareNodes, ktorá mi porovnáva dva texty.

--- Konce citace ---
Zrejme ty texty spatne porovnavas viz. napr. funkce CompareText vs. CompareString.

Slavomir:
Máš pravdu, aké jednoduché! Procedúru porovnávania CompareStr som použil z webu a nevšimol som si, že sú tam možnosti ako Compare - AnsiCompare - UTF8Compare a tiež Text alebo Str.
Pri UTF8 alebo Ansi mi to radí už správne, len číslice mi zoradí až za písmená, čo je trochu nezvyklé (teda v poradí prázdny znak, A..Ž, 0..9).
Vďaka za pomoc.

Navigace

[0] Seznam témat

Přejít na plnou verzi