J'ai un formulaire Delphi avec un tas de contrôles VCL, comme TButton et TCheckBox, et une instance de l'éditeur de texte Scintilla. Je veux être en mesure de tabuler dans et hors de l'éditeur de texte, mais il semble que les onglets sont gérés par la bibliothèque VCL pas Windows.Existe-t-il un moyen simple d'autoriser le tabulation entre les contrôles non-VCL et VCL sur un formulaire Delphi?
Je suis passé par le code et il semble que les onglets sont gérés par les méthodes SelectNext et FindNextControl de la classe TWinControl. Ces méthodes fonctionnent sur les objets TWinControl mais l'éditeur de texte ne descend pas de TWinControl comme TButton et TCheckbox.
Existe-t-il un moyen simple d'autoriser le tabulation entre les contrôles non-VCL et VCL?
Quelle enveloppe pour la bibliothèque Scintilla utilisez-vous? – mghie
Je n'utilise pas de wrapper. CreateWindowEx pour le créer et SendMessage pour communiquer avec lui. –
Ce serait probablement une bonne idée de faire votre propre classe d'emballage pour cela. Il n'a pas à exposer des propriétés ou des méthodes. Utilisez TStaticText ou TEdit comme exemple de procédure permettant à un descendant TWinControl d'appeler CreateWindowEx avec le nom de classe de fenêtre correct. Vous obtenez un tas de choses gratuitement, comme l'alignement, le dimensionnement et la tabulation. –