![]() |
Pen reagiert nicht auf Farbe
Hi zusammen
Nun arbeite ich daran, meinen Jahreskalender etwas zu verfeinern; das heisst, ich muss das Ding (oder besser: Die 12 Dinger - Grids, die jeweils einen Monat darstellen) selbst zeichnen. Und da zeigt sich schon das erste Problem:
Delphi-Quellcode:
Das zeichnet mir die fixierten Zeilen und Spalten, die Stiftfarbe ist abernach wie vor schwarz. Was mache ich falsch'
procedure TDayNumberFrame.StrGCalendarMonthFrameDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (gdFixed In State) then begin StrGCalendarMonthFrame.Canvas.Brush.Color := clred; StrGCalendarMonthFrame.Canvas.FillRect(Rect); StrGCalendarMonthFrame.Canvas.Pen.Color := clyellow; StrGCalendarMonthFrame.Canvas.Pen.Mode := pmCopy; StrGCalendarMonthFrame.Canvas.Pen.Style := psSolid; StrGCalendarMonthFrame.Canvas.TextOut(Rect.Left+2, Rect.Top+2, StrGCalendarMonthFrame.Cells[ACol, ARow]); end; end; Gruss Delbor |
AW: Pen reagiert nicht auf Farbe
Font.Color
|
AW: Pen reagiert nicht auf Farbe
Hi zusammen
Doch, wer lesen kann(auch die Hilfe), ist klar im Vorteil. Hab ich zuerst gedacht. War aber falsch, auch wenns sich zum ersten logisch anhört.
Delphi-Quellcode:
Erstmal erfolgte die Textausgabe wie gehabt. Dann fügte ich die auskommentierte Zeile ein und bekam die gelbe Textausgabe - die blieb auch, nachdem ich die Zeile auskommentiert hatte und die erzeugten DCUs gelöschte hatte. Wobei nun die Textausgaben im ganzen grid erfolgten, was eben nicht sein sollte (Die ist anders).
procedure TDayNumberFrame.StrGCalendarMonthFrameDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (gdFixed In State) then begin StrGCalendarMonthFrame.Canvas.Brush.Color := clred; StrGCalendarMonthFrame.Canvas.FillRect(Rect); // StrGCalendarMonthFrame.Font.Charset := DEFAULT_CHARSET; StrGCalendarMonthFrame.Font.Color := clYellow; StrGCalendarMonthFrame.Font.Style := [fsBold]; StrGCalendarMonthFrame.Font.Size := 10; StrGCalendarMonthFrame.Canvas.TextOut(Rect.Left+2, Rect.Top+2, StrGCalendarMonthFrame.Cells[ACol, ARow]); end; end; Vielen Dank für deine Bemühungen, by brechi. Gruss Delbor |
AW: Pen reagiert nicht auf Farbe
Hi zusammen
Und wie so oft sitzt der Fehler vor dem Blidschirm... Natürlich muss es so sein:
Delphi-Quellcode:
Auskommentiert sind die Zeilen, die sich in dieser falschen Form im letzten Codeschnipsel eingeschlichen haben...
procedure TDayNumberFrame.StrGCalendarMonthFrameDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ARow=0) or (ACol=0) then begin StrGCalendarMonthFrame.Canvas.Brush.Color := clred; StrGCalendarMonthFrame.Canvas.FillRect(Rect); StrGCalendarMonthFrame.Canvas.Font.Charset := DEFAULT_CHARSET; // StrGCalendarMonthFrame.Font.Name := 'Times New Roman'; // StrGCalendarMonthFrame.Font.Color := clYellow; // StrGCalendarMonthFrame.Font.Style := [fsBold]; // StrGCalendarMonthFrame.Font.Size := 10; StrGCalendarMonthFrame.Canvas.Font.Name := 'Times New Roman'; StrGCalendarMonthFrame.Canvas.Font.Color := clYellow; StrGCalendarMonthFrame.Canvas.Font.Size := 10; StrGCalendarMonthFrame.Canvas.Font.Style := [fsBold]; StrGCalendarMonthFrame.Canvas.TextOut(Rect.Left+4, Rect.Top+2, StrGCalendarMonthFrame.Cells[ACol, ARow]); end; end; Ausserdem muss DefaultDrawing False sein. Gruss Delbor |
AW: Pen reagiert nicht auf Farbe
In hartnäckigen Fällen hilft auch
SetTextColor(Handle, ColorToRGB(aTextCol)); SetBKColor(Handle, ColorToRGB(aBackgroundcol)); Handle : HDC kommt von Canvas.Handle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz