Afficher les caractères Unicode par catégorie
Par Delphi Source - March 21, 2026 · Vues: 17 · Catégories: Snippets · Tags: #Unicode

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 !