Stiftstil ändern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Stifte verwenden


Die Eigenschaft Style eines Stiftes bestimmt, ob durchgehende, gestrichelte oder gepunktete Linien usw. gezeichnet werden.

Beim Festlegen der Stifteigenschaften bietet es sich an, zur Behandlung der Ereignisse der verschiedenen Steuerelemente eine gemeinsame Ereignisbehandlungsroutine einzusetzen. Durch Überprüfung des Parameters Sender kann ermittelt werden, welches Steuerelement das Ereignis erhalten hat.


Gehen Sie beispielsweise folgendermaßen vor, um eine OnClick-Ereignisbehandlungsroutine für sechs Stiftstil-Schaltflächen auf der Symbolleiste eines Stiftes zu erzeugen:

  1. Markieren Sie alle sechs Stiftstil-Schaltflächen, und wählen Sie das Ereignis Objektinspektor > Ereignisse > OnClick aus. Geben Sie anschließend in das Feld daneben SetPenStyle ein. Die IDE erzeugt eine leere OnClick-Ereignisbehandlungsroutine namens SetPenStyle und ordnet sie dem Ereignis OnClick aller sechs Schaltflächen zu.
  2. Ergänzen Sie die Ereignisbehandlungsroutine um Anweisungen, die den Schriftstil zuweisen. Jede Zuweisung hängt vom Wert des Parameters Sender ab, der das Steuerelement bezeichnet, von dem das Ereignis ausgelöst wurde:
 void __fastcall TForm1::SetPenStyle(TObject *Sender)
 {
   if (Sender == SolidPen)
     Canvas->Pen->Style = psSolid;
   else if (Sender == DashPen)
     Canvas->Pen->Style = psDash;
   else if (Sender == DotPen)
     Canvas->Pen->Style = psDot;
   else if (Sender == DashDotPen)
     Canvas->Pen->Style = psDashDot;
   else if (Sender == DashDotDotPen)
     Canvas->Pen->Style = psDashDotDot;
 '  else if (Sender == ClearPen)
     Canvas->Pen->Style = psClear;
 }
void __fastcall TForm1::SetPenStyle(TObject *Sender) {
	if (Sender == SolidPen)
		Canvas->Pen->Style = psSolid;
	else if (Sender == DashPen)
		Canvas->Pen->Style = psDash;
	else if (Sender == DotPen)
		Canvas->Pen->Style = psDot;
	else if (Sender == DashDotPen)
		Canvas->Pen->Style = psDashDot;
	else if (Sender == DashDotDotPen)
		Canvas->Pen->Style = psDashDotDot;
	else if (Sender == ClearPen)
		Canvas->Pen->Style = psClear;
}

Der oben genannte Code der Ereignisbehandlungsroutine kann dadurch verkürzt werden, indem die Stiftstilkonstanten auf die Eigenschaft Tag der Schaltfläche Stiftstil gesetzt werden. Dann sieht der Ereigniscode in etwa wie folgt aus:

void __fastcall TForm1::SetPenStyle(TObject *Sender) {
    if (Sender->InheritsFrom(__classid(TSpeedButton)) Canvas->Pen->Style =
        (TPenStyle)((TSpeedButton*)Sender)->Tag;}

Siehe auch