Bonjour à tous.
On va proposer un mécanisme de fonctionnement d'une 'Coolbar' contenant des 'ToolBar' et des 'BCButton' de l'onglet 'BGRA Controls'.
L'avantage d'une 'CoolBar' est qu'elle puisse contenir et gérer plusieurs barres d'outils(jumelles) simultanément.
Les 'BCButton' disposent d'une richesse graphique considérable.
1) On ajoute à une fiche une 'CoolBar1' (FixedOrder:True, FixedSise:True).
2) On dépose sur cette 'CoolBar1' quatres 'ToolBar' (qui portent des 'BCButton'), la première (ToolBar1) est la barre 'maîtresse' toujours apparente,
qui gère par des 'BCButton' codés, les trois autres barres, dont une seule peut apparaitre à la fois.
3) On va agrandir la hauteur de 'CoolBar' de telle manière que toutes les 'ToolBar' apparaissent.
4) On clique sur CoolBar1/Band/TCoolBand et on configure leurs propriétés:
* control:ToolBarx FixedSize:true MinHeight:n (n entier p.ex 35).
5) On configure maintenant les 'ToolBar':
* Constraints/MinHeight:n (35) ButtonHeight:n-1 (34) Transparent:True EdgeInner:esnone EdgeOuter:esnone.
*On diminue la hauteur de 'CoolBar1' de telle manière qu'ils apparaissent les deux premières bandes uniquement.
6) On ajoute sur 'ToolBar1' trois bouttons 'BCButton'(AutoSize:False width:qq) qui gère chacun une 'Coolband' de 'CoolBar1' à l'aide d'une procédure:
1/Déclaration de la procédure.
2/Initialisation de la largeur des barres d'outils.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 interface uses Classes, SysUtils, FileUtil, BCButton, Forms, Controls, Graphics, Dialogs, ComCtrls; Procedure Bande(Band:TCoolBand); implementation procedure Bande(Band:TCoolBand); begin Form1.CoolBar1.Bands[1].Visible:=False; //Band[0] toujour visible, corresponde à la première barre d'outils. Form1.CoolBar1.Bands[2].Visible:=False; Form1.CoolBar1.Bands[3].Visible:=False; Band.Visible:=True ; end;
Code:
1
2
3
4
5
6
7
8
9
10 procedure TForm1.FormActivate(Sender: TObject); begin Toolbar1.Constraints.MaxWidth:=Coolbar1.Width-5 ; Toolbar2.Constraints.MaxWidth:=Coolbar1.Width-5 ; Toolbar3.Constraints.MaxWidth:=Coolbar1.Width-5 ; Toolbar4.Constraints.MaxWidth:=Coolbar1.Width-5 ; Bande(Form1.CoolBar1.Bands[1]); end;
3/Les trois BCButtons.
merci à tous. 8-)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TForm1.BCButton1MouseEnter(Sender: TObject); begin Bande(Form1.CoolBar1.Bands[1]) end; procedure TForm1.BCButton2MouseEnter(Sender: TObject); begin Bande(Form1.CoolBar1.Bands[2]) end; procedure TForm1.BCButton3MouseEnter(Sender: TObject); begin Bande(Form1.CoolBar1.Bands[3]) end;