![]() |
Stringgrid selected ändert Farbe
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
ich ändere die Farbe der fixierten Zeile 0 nach Rot. Danach ändert sich die Farbe der ersten selektierten Zelle auf violett. Siehe Printscreen! Wie krieg ich das los?
Code:
//DefaultDrawing := true; //Info
//goRowSelect := true; procedure TFormMain.SG1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if ARow = 0 then begin sg1.Canvas.Brush.Color := clred; sg1.Canvas.fillrect(Rect); sg1.Canvas.textout(rect.left+5,rect.top+2,SG1.Cells[aCol,aRow]); end; end; |
AW: Stringgrid selected ändert Farbe
Bei Options gibt es die Eigenschaft "goRowSelect". Diese kannst du setzen. Dann wird die ganze Zeile markiert.
Vielleicht hilft das. |
AW: Stringgrid selected ändert Farbe
Danke Matthias
in meinem Code habe ich oben in der Info geschrieben, dass GoRowSelect = true ist. Das wars noch nicht. |
AW: Stringgrid selected ändert Farbe
Vielleicht merkst du dir die Brush.Color und stellst sie nach dem Zeichnen wieder her.
|
AW: Stringgrid selected ändert Farbe
Danke Uwe
einfache Lösungen brauchen Zeit und liebe Mithilfe :-)
Code:
procedure TFormMain.SG1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); var oldColor : Tcolor; begin if ARow = 0 then begin oldColor := SG1.Canvas.Brush.Color; sg1.Canvas.Brush.Color := clActiveCaption; sg1.Canvas.Brush.Color := clred; sg1.Canvas.fillrect(Rect); sg1.Canvas.textout(rect.left+5,rect.top+2,SG1.Cells[aCol,aRow]); sg1.Canvas.Brush.Color := oldColor; end; end; |
AW: Stringgrid selected ändert Farbe
Warum Brush.Color zwei Mal setzen?
Gut, hier wird nur eine Eigenschaft geändert, aber so zur Info: es gibt auch ![]() ![]()
Delphi-Quellcode:
Kann pinzipiell für alle TPersistent-Nachfahren verwendet werden, welche die Assign-Methode ausreichend implementiert haben.
BR := TBrushRecall.Create(Canvas.Brush);
try ... sonstwas im Brush ändern finally BR.Free; // danach ist der Brush wieder wie vorher end; Schade, dass es das nicht als Combi für TCanvas gibt, also inkl. Pen, Brush und Font (die es alle einzeln gibt). |
AW: Stringgrid selected ändert Farbe
@ratmalwer
Dein Musikgeschmack gefällt mir:) |
AW: Stringgrid selected ändert Farbe
Wenn man nicht jede Änderung am Canvas einzeln zurücknehmen möchte:
Delphi-Quellcode:
procedure DrawCell(ACanvas: TCanvas; ARect: TRect; AColor: TColor; AText: string);
begin ACanvas.Brush.Color := AColor; ACanvas.TextRect(ARect, ARect.Left + 5, ARect.Top + 2, AText); end; procedure TFormMain.SG1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var SaveIndex: Integer; begin if ARow = 0 then begin SaveIndex := SaveDC(SG1.Canvas.Handle); try DrawCell(SG1.Canvas, ARect, clRed, SG1.Cells[ACol, ARow]); finally RestorDC(SG1.Canvas.Handle, SaveIndex); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06: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