Bonjour,
J'utilise un TTabControl avec une 50enes d'onglets. Je souhaite pouvoir changer dynamiquement la position d'un onglet, comme on peut le faire sous builder avec les onglets des fichiers .cpp et .h (comme un glissé déplacé).
Une idée ?
Merci
Version imprimable
Bonjour,
J'utilise un TTabControl avec une 50enes d'onglets. Je souhaite pouvoir changer dynamiquement la position d'un onglet, comme on peut le faire sous builder avec les onglets des fichiers .cpp et .h (comme un glissé déplacé).
Une idée ?
Merci
J'ai un début à ton problème mais c'est à développer.
Sur une Form tu met un TabControl (TabControl1) avec les propriété TabWidth à 20
et TabHeight à 60 et tu mets quelques Items à Tabs
Unit.h
Unit.cpp (événements OnMouseDown OnMouseMove et OnMouseUp)Code:
1
2
3
4 private: // Déclarations de l'utilisateur int MemIndex; bool TabDrag;
Si il est MultiLignes il faudra aussi jouer sur la propriété TabHeigt.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 void __fastcall TForm1::TabControl1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { MemIndex = TabControl1->TabIndex; TabDrag = true; } void __fastcall TForm1::TabControl1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (TabDrag) TabControl1->Cursor = crDrag; } void __fastcall TForm1::TabControl1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { int LeIndex = X/TabControl1->TabWidth; TabDrag = false; TabControl1->Cursor = crDefault; TabControl1->Tabs->Exchange(LeIndex, MemIndex); }
La classe CGI :!:
Je n'en demandais pas temps, ca marche nikel.
Merci !