Bonjour,
je suis en train de préparer un petit papier sur la possibilité d'ajouter un bouton de clôture à un TTabItem. J'ai réussi à le faire avec style pas forcément élégance de deux manières différentes donc pas de souci de ce côté. Ce qui me gêne c'est la perte de focus ou du moins est-ce ainsi que je l’interprète.
Symptôme : lorsque je clôture un onglet, le menu système de la forme (je teste sous windows) n'est plus actif, il faut que je clique dans le cadre de la forme pour que celui-ci réagisse à nouveau.
J'ai tenté ce code
Une idée ou est-ce un petit bogue de Tokyo (10.2.3)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 procedure TForm1.CloseTab(sender: TObject); var i : Integer; KeyChar : Char; Key : Word; begin // recherche de l'onglet for I := 0 to TabControl1.TabCount-1 do if TabControl1.Tabs[i]=TButton(Sender).TagObject then Break; // clôture de l'onglet if i<TabControl1.TabCount then TabControl1.Delete(i); // la fenêtre perd le focus si plus de tabitems // code fonctionnel mais inefficace au niveau du menu système if TabControl1.TabCount>0 then TabControl1.ActiveTab.SetFocus else begin Key:=vkTab; KeyChar:=#9; KeyDown(Key,KeyChar,[]); end; end;
Je peux bien sûr vous fournir le code complet au besoin
Partager