Gerer le tabulation

bilou2000 Messages postés 30 Date d'inscription lundi 10 novembre 2003 Statut Membre Dernière intervention 15 mars 2005 - 28 oct. 2004 à 10:16
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 2 nov. 2004 à 18:23
bonjour

j'ai besoin de gérer la tabulation des composants sur une form, car celle prévue ne me satisfait pas.
Il faut que le dessin de selec. puisse être modifier,
il faut que tous les compo. puisse être selectionner même ceux sans tab.
et que la select. puisse défiler automatiquement.

voici mon bout de code:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
bitbtn3.TabStop:=false;

keybd_event(39,0,1,0); //touche enfoncé
timer1.interval:= 2000;
keybd_event(39,0,2,0); //touche relevé
end;

ça défile bien mais si je click sur un bouton il ne se passe rien ,même si un code est rataché à onclick.
et de plus je n'ai pas trouvé comment modif le dessin de selec.

ESt ce qu'un Tcomponentlist serait adéquate ???
pour gérer cette pseudo tabulation.

merci

2 réponses

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
2 nov. 2004 à 18:20
... la tabulation il y a 2 choses à savoir.

1) L'ordre des tabs est défini par la propriété TabOrder, géré dans une boîte de dialogue dans Delphi (menu Edition).

2) Si tu veux détecter les Tabs avant qu'ils agissent, KeyPreview de la TForm doit être TRUE et ensuite il faut gérer l'évènement Form1.OnKeyPressed (key=#9).

Pour trouver l'index de tabulation actuel:
TabActuel:=Form1.ActiveControl.TabOrder;
ou TabActuel:=(Form1.ActiveControl as TWinControl).TabOrder
(j'ai un doute soudainement)

Pour trouver l'index de tabulation suivant ou précédent, il faut naviguer avec une boucle FOR dans Form1.Components[] entre 0 et Form1.Components.Count-1 et tu t'arrêtes lorsque le TabOrder du composant scanné vaut plus ou moins 1 par rapport à TabActuel.

Ca risque de bugger, car le tableau Components référence tous les contrôles, même ceux non fenêtrés (non dérivés de TWinControl, et ils n'ont pas de propriété TabOrder). Il faudra donc faire des tests de condition.
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
2 nov. 2004 à 18:23
ERRATUM:
Form1.ComponentCount-1
0
Rejoignez-nous