Pinselstil ändern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Pinsel verwenden


Der Pinselstil legt fest, mit welchen Mustern in der Zeichenfläche Formen ausgefüllt werden. Sie können die Pinselfarbe mit anderen, bereits auf der Zeichenfläche vorhandenen Farben kombinieren. Die vordefinierten Stile umfassen Vordergrundfarbe, Transparenz und verschiedene Linien- und Gittermuster.

Um den Stil eines Pinsels zu ändern, setzen Sie dessen Eigenschaft Style auf einen der vordefinierten Werte bsBDiagonal, bsClear, bsCross, bsDiagCross, bsFDiagonal, bsHorizontal, bsSolid oder bsVertical.

Im folgenden Beispiel werden Pinselstile festgelegt, indem für die acht Pinselstil- Schaltflächen eine gemeinsame Behandlungsroutine für das Ereignis OnClick verwendet wird. Dazu markieren Sie alle acht Schaltflächen und geben unter Objektinspektor den Namen SetBrushStyle ein.

Hier der Quelltext der Behandlungsroutine:

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;
}


Die obige Ereignisbehandlungsroutine kann durch Hinzufügen von Pinselstil-Konstanten zu den Tag-Eigenschaften der Pinselstil-Schaltflächen reduziert werden. Dann könnte die Ereignisbehandlungsroutine in etwa folgendermaßen aussehen:

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

Siehe auch