Inclusion de fonctionnalités bi-directionnelles dans les applications
Remonter à Permettre au code de l'application de fonctionner pour différentes régions
Certaines langues ne se lisent pas de gauche à droite comme la plupart des langues occidentales, mais de droite à gauche pour les mots et de gauche à droite pour les nombres. Ces langues sont dites bi-directionnelles (BiDi) du fait de cette séparation. Les langues bi-directionnelles les plus courantes sont l'Arabe et l'Hébreu, sans parler d'autres langues de l'Est.
La VCL prend en charge la localisation bi-directionnelle via les propriétés BiDiMode et ParentBiDiMode. TApplication dispose de deux propriétés, BiDiKeyboard et NonBiDiKeyboard, vous permettant de spécifier la disposition clavier.
Objets VCL qui prennent en charge BiDi
Standard | Objets supplémentaires | Win32 | Contrôles de données | Autres classes |
---|---|---|---|---|
|
|
|
|
|
Remarque : THintWindow capte le BiDiMode du contrôle qui a activé le conseil.
Sommaire
Propriété BiDiMode
La propriété BiDiMode contrôle le sens de lecture du texte, la position de la barre de défilement verticale et si l'alignement est modifié. Les contrôles disposant d'une propriété texte, telle que Name, affichent la propriété BiDiMode dans l'inspecteur d'objets.
La propriété BiDiMode appartient au type énuméré TBiDiMode. TBiDiMode a quatre états : bdLeftToRight, bdRightToLeft, bdRightToLeftNoAlign et bdRightToLeftReadingOnly :
State |
Description |
Sample |
---|---|---|
bdLeftToRight |
Dessine le texte en utilisant le sens de lecture de gauche à droite. L'alignement et les barres de défilement étant inchangés. Par exemple, lors de la saisie de texte de droite à gauche, comme pour l'Arabe ou l'Hébreu, le curseur passe en mode poussoir et le texte est entré de droite à gauche. Pour du texte latin, comme l'Anglais ou le Français, il est entré de gauche à droite. bdLeftToRight est la valeur par défaut. |
|
bdRightToLeft |
Dessine le texte en utilisant le sens de lecture de droite à gauche, l'alignement étant modifié et la barre de défilement déplacée. Le texte est entré normalement pour les langues allant de droite à gauche comme l'Arabe ou l'Hébreu. Lorsque le clavier est modifié pour une langue latine, le curseur passe en mode poussoir et le texte est entré de gauche à droite. |
|
bdRightToLeftNoAlign |
Dessine le texte en utilisant le sens de lecture de droite à gauche, l’alignement étant inchangé et la barre de défilement déplacée. |
|
bdRightToLeftReadingOnly |
Dessine le texte en utilisant le sens de lecture de droite à gauche, l'alignement et les barres de défilement étant inchangés. |
Propriété ParentBiDiMode
ParentBiDiMode est une propriété booléenne. Si elle est définie sur True
(la valeur par défaut), le contrôle recherche son parent pour déterminer quel est le BiDiMode à utiliser. Si le contrôle est un objet TForm, la fiche utilise le paramètre BiDiMode de Application. Si toutes les propriétés ParentBiDiMode sont définies sur True
, lorsque la propriété BiDiMode de Application est modifiée, toutes les fiches et tous les contrôles du projet sont mis à jour avec le nouveau paramètre.
Méthode FlipChildren
La méthode FlipChildren vous permet de faire basculer la position des enfants d'un contrôle conteneur. Les contrôles conteneur sont des contrôles qui contiennent d'autres contrôles. Voici des exemples de contrôles conteneur : TForm, TPanel et TGroupBox. FlipChildren possède un seul paramètre booléen, AllLevels. Quand AllLevels est défini sur False
, seuls les enfants immédiats du contrôle conteneur sont basculés de position. Quand AllLevels est défini sur True
, les enfants de tous niveaux du contrôle conteneur sont basculés de position.
Delphi fait basculer la position des contrôles en modifiant la propriété Left et l'alignement du contrôle. Si le côté gauche d'un contrôle est à cinq pixels du bord gauche de son contrôle parent, le basculement provoque l'affichage du côté droit du contrôle d'édition à cinq pixels du bord droit de son contrôle parent. Si le contrôle d'édition est aligné à gauche, un appel à FlipChildren provoquera un alignement à droite.
Pour basculer la position d'un contrôle lors de la conception, sélectionnez Edition > Basculer les enfants, puis Tous
ou Sélectionnés
suivant que vous voulez basculer la position de tous les contrôles ou seulement les enfants du contrôle sélectionné. Vous pouvez aussi basculer la position des contrôles au sein d'un contrôle conteneur, en sélectionnant le contrôle conteneur sur la fiche, en cliquant avec le bouton droit et en sélectionnant Basculer les enfants dans le menu contextuel.
Remarque : La sélection d'un contrôle d'édition et l'émission d'une commande Basculer les enfants > Sélectionnés ne fait rien. Cela est du au fait que les contrôles d'édition ne sont pas des conteneurs.
Autres méthodes utiles pour la fonctionnalité bi-directionnelle
Il existe d'autres méthodes utiles afin de développer des applications pour des utilisateurs bi-directionnels.
Méthodes de la VCL prenant en charge BiDi :
Méthode | Description |
---|---|
Utilisée avec les contrôles base de données. Vérifie si l'alignement d'un contrôle peut être modifié. | |
Utilisée pour vérifier l'alignement des contrôles base de données. | |
Modifie le paramètre d'alignement qui lui est transmis. Aucune vérification n'est faite pour le paramètre BiDiMode, car il y a juste conversion de l'alignement à gauche vers l'alignement à droite, et vice-versa. | |
Renvoie | |
Renvoie | |
Renvoie | |
Renvoie | |
Renvoie les indicateurs texte de dessin corrects pour le BiDiMode du contrôle. | |
Renvoie l'indicateur | |
Ajoute les indicateurs |