![]() |
TStringGrid
Hallo zusammen,
ich weiß, bestimmt eine Anfängerfrage aber mir fällt die lösung nicht ein:-( ich möchte beim Selectieren von Zellen einer Stringgrid die Rahmenfarbe mit der Selectierfarbe überschreiben, weiß aber nicht wie ich das schnell lösen kenn, hier mal ein kurzer Auszug des Quelltextes
Delphi-Quellcode:
procedure TfrKalender.sgCalenderDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); var sText : String; begin With sgCalender,canvas do begin if (gdFixed in State) then // fixen Zellen Brush.Color:= clBtnFace else if (ARow Mod 2 = 0) then begin // Zeilen mit gerader Zeilenzahl Brush.Color:= $00F9FDD7; Font.Color:= clWhite; end else //Zeilen mit ungerader Zeilenzahl Brush.Color:= clWhite; if (ACol = 1) or (ARow = 0) then sText :=Cells[Acol,ARow]; if sText = 'Sa.' then begin Font.Color := $004080FF; Font.Style := [fsBold]; end; if sText = 'So.' then begin Font.Color := clRed; Font.Style := [fsBold]; end; if (gdSelected in State) then begin [b]// hier sollen die Linien der Zellen durch die Hintergrundsfarbe ersetzt werden!![/b] Brush.Color := $00B9B9FF; Pen.Color := clWhite; label1.Caption := inttostr(acol); end; FillRect(rect); // Text zeichnen TextOut(Rect.Left + 2, Rect.Top + 2, sgCalender.Cells[ACol, ARow]); end; end; Für einen schnellen Tipp wäre ich sehr dankbar. Viele Grüße Michael |
Re: TStringGrid
Hallo,
kann es sein, dass Du einfach vergessen hast, die Linien mit MoveTo() und LineTo() zu zeichnen? :zwinker: Es genügt nicht, einfach nur die Farbe zu setzen - da die Linie kein Objekt ist, das sich selber ändert, musst Du schon den Pinsel schwingen ;) Benutze dazu einfach die Werte aus 'Rect'. |
Re: TStringGrid
Danke für die schnelle Antwort, hättest du vieleicht nen kleine Beispiel für mich???
Gruß Michael |
Re: TStringGrid
Ungetestet :!:
Sollte die untere Linie färben:
Delphi-Quellcode:
Die anderen Linien analog dazu.
Canvas.Brush.Color := $00B9B9FF;
Canvas.Pen.Color := clWhite; Canvas.MoveTo(Rect.Left, Rect.Bottom); Canvas.LineTo(Rect.Right + 1, Rect.Bottom); // (+ 1) um den Schnittpuntk mit der rechten Linie ebenfalls zu färben |
Re: TStringGrid
Grrrr....
ich kriegs einfach nich hin, möchte nur die vertikalen Linien durch die Hintergrundsfarbe ersetzen aber irgendwie funktioniert das nicht, bitte....hast du nen Tipp oder Codeschnipsel? Danke Michael |
Re: TStringGrid
Erledigt,
vielen Dank für Deine Hilfe, manchmal sieht man den Baum vor lauter Wald nicht, Viele Grüße Michael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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-2025 by Thomas Breitkreuz