Afficher les caractères Unicode par catégorie
Ce code permet de parcourir l’ensemble des caractères Unicode et de les organiser automatiquement dans un TTreeView selon leur catégorie Unicode.
Fonctionnalités
Création d’un nœud pour chaque catégorie Unicode (Letter, Symbol, Separator, etc.)
Parcours de tous les caractères de U+0020 à U+FFFF
Détection de la catégorie via TCharacter.GetUnicodeCategory
Ajout automatique dans l’arborescence, avec affichage du caractère + son code hexadécimal
uses
System.Character, System.Generics.Collections, System.TypInfo;
{$R *.dfm}
procedure UnicodeTree(TreeView: TTreeView);
var
I: Integer;
Cat: TUnicodeCategory;
CategoryNodes: TDictionary<TUnicodeCategory, TTreeNode>;
ParentNode: TTreeNode;
begin
TreeView.Items.BeginUpdate;
TreeView.Items.Clear;
CategoryNodes := TDictionary<TUnicodeCategory, TTreeNode>.Create;
// Ajouter les catégories principales
for Cat := Low(TUnicodeCategory) to High(TUnicodeCategory) do
begin
ParentNode := TreeView.Items.Add(nil, GetEnumName(TypeInfo(TUnicodeCategory), Ord(Cat)));
CategoryNodes.Add(Cat, ParentNode);
end;
// Ajouter les caractères à leurs catégories
for I := 32 to 65535 do
begin
Cat := TCharacter.GetUnicodeCategory(Chr(I));
ParentNode := CategoryNodes[Cat];
TreeView.Items.AddChild(ParentNode, Format('%s (%s)', [Chr(I), IntToHex(I, 4)]));
end;
CategoryNodes.Free;
TreeView.Items.EndUpdate;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
UnicodeTree(TreeView1);
end;Un petit clic (J'aime) qui fait plaisir !