auch das Beispiel mit einer PaintBox war nicht erfolgreich.
Code:
procedure TFontDialogFrame.PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
begin
with PaintBox1.Canvas do
begin
BeginScene();
Stroke.Kind:= tBrushKind.Solid;
Fill.Color := MainForm.EvenRowColor;
FillRect(PaintBox1.BoundsRect, 1,1, AllCorners, 1);
FontColor := FontColor;
Font.Family := Fontname;
Font.Size := FontSize;
Font.Style := FontStyle;
FillText(PaintBox1.BoundsRect, fExample, True, 1, [], TTextAlign.Center, TTextAlign.Center);
EndScene;
end;
end;
Hintergrundfarbe ändert sich wie gewünscht. Nur Text, kommt keiner.
Das liegt daran, dass die Farbe noch auf EvenRowColor steht, wenn Du den Text malst. Du musst vorher also wieder die Textfarbe wählen (vor Filltext z.B. mit
Fill.Color := TAlphaColorRec.Black;
und dann funktioniert auch das Beispiel hier.