Linie zeichnen mit Style psdot
-
Ich habe eine kleine Funktion geschrieben um meine eigene Linienroutine zu zeichnen, in der ich auch den Brush setzen kann. Als Defaultwert hat BrushColor clBlack.
Setze ich nun
C->Pen->Style = PenStyle; // psDot C->Pen->Color = PenColor; // clRed C->Pen->Width = Width; // 1 if (PenStyle!=psSolid) { C->Brush->Style = BrushStyle; // bsClear C->Brush->Color = BrushColor; // clBlack }
Dann habe ich das Problem das BrushColor scheinbar vom System einen "Durchsichtigwert" erhält und ich diesen mit BrushColor überschreibe.
Ich dachte ich bin mal schlau und lese C->Brush->Color vom System aus mit ColorToString, aber das sagt mir nur clWhite und das ist es nicht. Als nächstes dachte ich das er nur die Farbe ermittelt und ich ja mal statt clBlack als Default einfach 0x00FFFFFF setzen könnte. Aber auch das brachte nichts. Was zum Henker setzt das System denn da für einen Wert bei psDot?
Was muss ich in BrushColor als Defaultwert setzen, damit er psDot wieder durchsichtig macht?
-
Du darfst Brush->Color nach dem setzten von
Brush->Style = bsClear; nicht verwenden !Du hast ja mit Brush->Style = bsClear; festgelegt das du keine Farbe haben
möchtest wenn du die Farbe setzt wird natürlich auch der Brush->Style geändert
sonst würde die Farbe ja nicht gezeichnet.also nur:
C->Pen->Style = PenStyle; // psDot C->Pen->Color = PenColor; // clRed C->Pen->Width = Width; // 1 if (PenStyle!=psSolid) { C->Brush->Style = BrushStyle; // bsClear //C->Brush->Color = BrushColor; // clBlack }
verwenden