Difference between revisions of "TDrawGrid"

From Lazarus wiki
Jump to navigationJump to search
(Clarification (the listed properties are in fact shared with TCustomDrawGrid.))
(Fixing a typo and adding an additional explanation.)
 
(3 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 drawgrid provides a tabular display of graphical information.
+
'''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.
  
Special properties of TDrawGrid that distinguish it from some other grid types include:
+
Therefore, unlike other grid types, TDrawGrid requires implementing the following properties:
  
* ''OnDrawCell(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState)'': 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 ==

Latest revision as of 07:27, 22 October 2020

English (en) français (fr) русский (ru)

TDrawGrid 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(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:

TDrawGridExample.png

See also


LCL Components
Component Tab Components
Standard TMainMenu • TPopupMenu • TButton • TLabel • TEdit • TMemo • TToggleBox • TCheckBox • TRadioButton • TListBox • TComboBox • TScrollBar • TGroupBox • TRadioGroup • TCheckGroup • TPanel • TFrame • TActionList
Additional TBitBtn • TSpeedButton • TStaticText • TImage • TShape • TBevel • TPaintBox • TNotebook • TLabeledEdit • TSplitter • TTrayIcon • TControlBar • TFlowPanel • TMaskEdit • TCheckListBox • TScrollBox • TApplicationProperties • TStringGrid • TDrawGrid • TPairSplitter • TColorBox • TColorListBox • TValueListEditor
Common Controls TTrackBar • TProgressBar • TTreeView • TListView • TStatusBar • TToolBar • TCoolBar • TUpDown • TPageControl • TTabControl • THeaderControl • TImageList • TPopupNotifier • TDateTimePicker
Dialogs TOpenDialog • TSaveDialog • TSelectDirectoryDialog • TColorDialog • TFontDialog • TFindDialog • TReplaceDialog • TTaskDialog • TOpenPictureDialog • TSavePictureDialog • TCalendarDialog • TCalculatorDialog • TPrinterSetupDialog • TPrintDialog • TPageSetupDialog
Data Controls TDBNavigator • TDBText • TDBEdit • TDBMemo • TDBImage • TDBListBox • TDBLookupListBox • TDBComboBox • TDBLookupComboBox • TDBCheckBox • TDBRadioGroup • TDBCalendar • TDBGroupBox • TDBGrid • TDBDateTimePicker
Data Access TDataSource • TCSVDataSet • TSdfDataSet • TBufDataset • TFixedFormatDataSet • TDbf • TMemDataset
System TTimer • TIdleTimer • TLazComponentQueue • THTMLHelpDatabase • THTMLBrowserHelpViewer • TAsyncProcess • TProcessUTF8 • TProcess • TSimpleIPCClient • TSimpleIPCServer • TXMLConfig • TEventLog • TServiceManager • TCHMHelpDatabase • TLHelpConnector
Misc TColorButton • TSpinEdit • TFloatSpinEdit • TArrow • TCalendar • TEditButton • TFileNameEdit • TDirectoryEdit • TDateEdit • TTimeEdit • TCalcEdit • TFileListBox • TFilterComboBox • TComboBoxEx • TCheckComboBox • TButtonPanel • TShellTreeView • TShellListView • TXMLPropStorage • TINIPropStorage • TJSONPropStorage • TIDEDialogLayoutStorage • TMRUManager • TStrHolder
LazControls TCheckBoxThemed • TDividerBevel • TExtendedNotebook • TListFilterEdit • TListViewFilterEdit • TLvlGraphControl • TShortPathEdit • TSpinEditEx • TFloatSpinEditEx • TTreeFilterEdit • TExtendedTabControl •
RTTI TTIEdit • TTIComboBox • TTIButton • TTICheckBox • TTILabel • TTIGroupBox • TTIRadioGroup • TTICheckGroup • TTICheckListBox • TTIListBox • TTIMemo • TTICalendar • TTIImage • TTIFloatSpinEdit • TTISpinEdit • TTITrackBar • TTIProgressBar • TTIMaskEdit • TTIColorButton • TMultiPropertyLink • TTIPropertyGrid • TTIGrid
SQLdb TSQLQuery • TSQLTransaction • TSQLScript • TSQLConnector • TMSSQLConnection • TSybaseConnection • TPQConnection • TPQTEventMonitor • TOracleConnection • TODBCConnection • TMySQL40Connection • TMySQL41Connection • TMySQL50Connection • TMySQL51Connection • TMySQL55Connection • TMySQL56Connection • TMySQL57Connection • TSQLite3Connection • TIBConnection • TFBAdmin • TFBEventMonitor • TSQLDBLibraryLoader
Pascal Script TPSScript • TPSScriptDebugger • TPSDllPlugin • TPSImport_Classes • TPSImport_DateUtils • TPSImport_ComObj • TPSImport_DB • TPSImport_Forms • TPSImport_Controls • TPSImport_StdCtrls • TPSCustomPlugin
SynEdit TSynEdit • TSynCompletion • TSynAutoComplete • TSynMacroRecorder • TSynExporterHTML • TSynPluginSyncroEdit • TSynPasSyn • TSynFreePascalSyn • TSynCppSyn • TSynJavaSyn • TSynPerlSyn • TSynHTMLSyn • TSynXMLSyn • TSynLFMSyn • TSynDiffSyn • TSynUNIXShellScriptSyn • TSynCssSyn • TSynPHPSyn • TSynTeXSyn • TSynSQLSyn • TSynPythonSyn • TSynVBSyn • TSynAnySyn • TSynMultiSyn • TSynBatSyn • TSynIniSyn • TSynPoSyn
Chart TChart • TListChartSource • TRandomChartSource • TUserDefinedChartSource • TCalculatedChartSource • TDbChartSource • TChartToolset • TChartAxisTransformations • TChartStyles • TChartLegendPanel • TChartNavScrollBar • TChartNavPanel • TIntervalChartSource • TDateTimeIntervalChartSource • TChartListBox • TChartExtentLink • TChartImageList
IPro TIpFileDataProvider • TIpHtmlDataProvider • TIpHttpDataProvider • TIpHtmlPanel
Virtual Controls TVirtualDrawTree • TVirtualStringTree • TVTHeaderPopupMenu