Difference between revisions of "TDrawGrid"
From Lazarus wiki
Jump to navigationJump to searchJwdietrich (talk | contribs) (Slightly expanding the explanation of TDrawGrid.) |
Jwdietrich (talk | contribs) (Fixing a typo and adding an additional explanation.) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{TDrawGrid}} | {{TDrawGrid}} | ||
− | '''TDrawGrid''' [[image:tdrawgrid.png]] is a component on the [[Additional tab]] of the [[Component Palette]]. A | + | '''TDrawGrid''' [[image:tdrawgrid.png]] is a component on the [[Additional tab]] of the [[Component Palette]]. A DrawGrid provides a tabular display of graphical information. The developer is responsible for providing the code for drawing. |
− | + | Therefore, unlike other grid types, TDrawGrid requires implementing the following properties: | |
− | * ''OnDrawCell'': Handler for the basic cell painting event | + | * ''OnDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState)'': Handler for the basic cell painting event |
* ''DefaultDrawing'': a boolean property deciding whether or not ''OnDrawCell'' has to handle the entire code for cell painting. | * ''DefaultDrawing'': a boolean property deciding whether or not ''OnDrawCell'' has to handle the entire code for cell painting. | ||
+ | |||
+ | The following simple example shows how to use ''OnDrawCell'': | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
+ | procedure TForm1.DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer; | ||
+ | aRect: TRect; aState: TGridDrawState); | ||
+ | var | ||
+ | theCanvas: TCanvas; | ||
+ | theRect: TRect; | ||
+ | begin | ||
+ | theCanvas := TDrawGrid(Sender).Canvas; | ||
+ | if odd(aRow) then | ||
+ | begin | ||
+ | if odd(aCol) then | ||
+ | theCanvas.Brush.Color := clRed | ||
+ | else | ||
+ | theCanvas.Brush.Color := clGreen; | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | if odd(aCol) then | ||
+ | theCanvas.Brush.Color := clBlue | ||
+ | else | ||
+ | theCanvas.Brush.Color := clYellow; | ||
+ | end; | ||
+ | theCanvas.FillRect(theRect); | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | The demonstration code in this example fills the content of the cells with different colours, depending on whether the rows or columns are even or odd: | ||
+ | |||
+ | [[File:TDrawGridExample.png]] | ||
== See also == | == See also == |
Revision as of 07:27, 22 October 2020
│
English (en) │
français (fr) │
русский (ru) │
TDrawGrid is a component on the Additional tab of the Component Palette. A DrawGrid provides a tabular display of graphical information. The developer is responsible for providing the code for drawing.
Therefore, unlike other grid types, TDrawGrid requires implementing the following properties:
- OnDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState): Handler for the basic cell painting event
- DefaultDrawing: a boolean property deciding whether or not OnDrawCell has to handle the entire code for cell painting.
The following simple example shows how to use OnDrawCell:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
var
theCanvas: TCanvas;
theRect: TRect;
begin
theCanvas := TDrawGrid(Sender).Canvas;
if odd(aRow) then
begin
if odd(aCol) then
theCanvas.Brush.Color := clRed
else
theCanvas.Brush.Color := clGreen;
end
else
begin
if odd(aCol) then
theCanvas.Brush.Color := clBlue
else
theCanvas.Brush.Color := clYellow;
end;
theCanvas.FillRect(theRect);
end;
The demonstration code in this example fills the content of the cells with different colours, depending on whether the rows or columns are even or odd:
See also