[Lazarus] Handling of states in TStringGrid when using custom drawing of cells
Eirik Nesje
einesje at online.no
Sun Aug 14 15:15:00 CEST 2011
Hi
I have a TStringGrid where I have set up my own OnDrawCell handling. In
this new OnDrawCell function I have set up to change behaviour if aCol
is 1 and aRow is larger than 0. If not in selected range I call the
TStringGrid(Sender).DefaultDrawCell function.
This seems to be working well excepts for that it does not react to
changes in the state (specific selected). All cells that are drawn are
just displayed with their text values and no indication if they are
selected or not. The properties I have set are :
DefaultDrawing = False
Options.RowSelect = True
and OnDrawCell.
The overriden OnDrawCell function is (nothing fancy, just to test) :
procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: integer;
aRect: TRect; aState: TGridDrawState);
begin
if (aCol = 1) and (aRow > 0) then
begin
TStringGrid(Sender).Canvas.Pen.Color := clRed;
TStringGrid(Sender).Canvas.Line(aRect);
end
else
TStringGrid(Sender).DefaultDrawCell(aCol, aRow, aRect, aState);
end;
I can implement gdSelectedin my code to handle the columns where I have
decided to custom draw the content but should not the DefaultDrawCell
function ensure that all the other cells where properly drawn (not just
the content but also the state if selected) ?
BR
Eirik
(I'm using Lazarus 0.9.30 on Ubuntu and Lazarus 0.9.31 on Windows. Both
displays the same result).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20110814/7903e46a/attachment-0002.html>
More information about the Lazarus
mailing list