Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringGrid -> Angeklickte Zelle farblich (https://www.delphipraxis.net/121152-stringgrid-angeklickte-zelle-farblich.html)

HolgerCW 23. Sep 2008 08:54


StringGrid -> Angeklickte Zelle farblich
 
Hallo zusammen,

wie kann ich in dem onDrawCell - Ereignis die angeklickte Zelle herrausfinden um diese dann farblich darzustellen ?

Gruss

Holger

DeddyH 23. Sep 2008 08:57

Re: StringGrid -> Angeklickte Zelle farblich
 
Die müsste doch mit Cells[Col,Row] zu finden sein.

taaktaak 23. Sep 2008 08:58

Re: StringGrid -> Angeklickte Zelle farblich
 
Delphi-Quellcode:
if gdSelected in State then ...

DeddyH 23. Sep 2008 08:59

Re: StringGrid -> Angeklickte Zelle farblich
 
Klar, das ist natürlich einfacher :D

HolgerCW 23. Sep 2008 09:17

Re: StringGrid -> Angeklickte Zelle farblich
 
Vielen dank schon einmal und wie könnte ich nun anstatt der angeklickten Zelle die oberste Zeile in der Spalte anders farbig darstellen ?

Delphi-Quellcode:

 if gdSelected in State then
 begin

  Canvas.Brush.Color := clGradientInactiveCaption;
  Canvas.FillRect(Rect);
  Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]);
 
 end;
Gruss

Holger

SaFu 23. Sep 2008 09:25

Re: StringGrid -> Angeklickte Zelle farblich
 
Zitat:

Zitat von DeddyH
Die müsste doch mit Cells[Col,Row] zu finden sein.

einfach damit und dann die Zeile und Spalte angeben

taaktaak 23. Sep 2008 09:28

Re: StringGrid -> Angeklickte Zelle farblich
 
Was ist mit oberster Zeile gemeint?
Die erste Datenzeile unterhalb der FixedRow, oder die FixedRow(s) selber?

HolgerCW 23. Sep 2008 10:04

Re: StringGrid -> Angeklickte Zelle farblich
 
Die FixedRows selber ...

Weil gdselected in State und Row = 0 geht nicht, da ich ja eine Zelle z.B. Row = 3 und Col = 4 selektiere aber Row = 0 und Col = 4 farblich geändert werden soll.

Gruss

Holger

DeddyH 23. Sep 2008 10:09

Re: StringGrid -> Angeklickte Zelle farblich
 
Ist vielleicht nicht das Eleganteste, aber so geht es z.B.:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if (StringGrid1.Col = ACol) and (ARow = 0) then
    begin
      StringGrid1.Canvas.Brush.Color := clred;
      StringGrid1.Canvas.FillRect(Rect);
    end;
end;
Allerdings musste ich beim OnClick mit StringGrid.Invalidate ein Neuzeichnen auslösen.

HolgerCW 23. Sep 2008 10:22

Re: StringGrid -> Angeklickte Zelle farblich
 
Das klappt. Vielen dank ...

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz