Changement du style du pinceau

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation des pinceaux


Le style d'un pinceau détermine le motif utilisé pour remplir les formes. Il vous permet de spécifier différentes façons de combiner la couleur du pinceau à des couleurs déjà présentes sur le canevas. Les styles prédéfinis comprennent des couleurs unies, pas de couleur et divers motifs de lignes et de hachurages.

Pour modifier le style d'un pinceau, définissez sa propriété Style par l'une des valeurs prédéfinies suivantes : bsBDiagonal, bsClear, bsCross, bsDiagCross, bsFDiagonal, bsHorizontal, bsSolid ou bsVertical.

Cet exemple définit le style du pinceau en faisant partager le même gestionnaire d'événement OnClick aux huit boutons de style de pinceau. Les huit boutons sont sélectionnés, l'événement Inspecteur d'objets est défini et le gestionnaire OnClick porte le nom SetBrushStyle.

Voici le code du gestionnaire :

procedure TForm1.SetBrushStyle(Sender: TObject);
begin
  with Canvas.Brush do
  begin
    if Sender = SolidBrush then Style := bsSolid
    else if Sender = ClearBrush then Style := bsClear
    else if Sender = HorizontalBrush then Style := bsHorizontal
    else if Sender = VerticalBrush then Style := bsVertical
    else if Sender = FDiagonalBrush then Style := bsFDiagonal
    else if Sender = BDiagonalBrush then Style := bsBDiagonal
    else if Sender = CrossBrush then Style := bsCross
    else if Sender = DiagCrossBrush then Style := bsDiagCross;
  end;
end;
void __fastcall TForm1::SetBrushStyle(TObject *Sender) {
	if (Sender == SolidBrush)
		Canvas->Brush->Style = bsSolid;
	else if (Sender == ClearBrush)
		Canvas->Brush->Style = bsClear;
	else if (Sender == HorizontalBrush)
		Canvas->Brush->Style = bsHorizontal;
	else if (Sender == VerticalBrush)
		Canvas->Brush->Style = bsVertical;
	else if (Sender == FDiagonalBrush)
		Canvas->Brush->Style = bsFDiagonal;
	else if (Sender == BDiagonalBrush)
		Canvas->Brush->Style = bsBDiagonal;
	else if (Sender == CrossBrush)
		Canvas->Brush->Style = bsCross;
	else if (Sender == DiagCrossBrush)
		Canvas->Brush->Style = bsDiagCross;
}

Le code du gestionnaire d’événement ci-dessus peut être réduit en plaçant les constantes de style de pinceau dans les propriétés Tag des boutons de style de pinceau. L'événement de code ressemblerait à :

void __fastcall TForm1::SetBrushStyle(TObject *Sender) {
    if (Sender->InheritsFrom(__classid(TSpeedButton)) Canvas->Brush->Style =
        (TBrushStyle)((TSpeedButton*)Sender)->Tag;}

Voir aussi