| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 |  
//------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
// initialisation du mécanisme
SpeedButton1->Tag = (int)SpeedButton2;
}
//--------------- le bouton maître
void __fastcall TForm1::SpeedButton1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
TSpeedButton *B = (TSpeedButton*)SpeedButton1->Tag;
B->Flat = true;
}
//--------------- le bouton maître
void __fastcall TForm1::SpeedButton1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
TSpeedButton *B = (TSpeedButton*)SpeedButton1->Tag;
B->Flat = false;
}
//--------------- partagée par les 10 boutons cibles
void __fastcall TForm1::SpeedButton2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
// Le bouton cible est le Sender et non pas le this de cette méthode
// Un Tag du type int peut servir de pointeur vers TSpeedButton par
// simple transtypage
SpeedButton1->Tag = (int)Sender;
}
//--------------- | 
Partager