Componentes.Terceros.Mustan.../official/1.7.0/EasyListview/Demos/Grid/Unit1.pas
david 778b05bf9f Importación inicial
- Mustangpeak Common Library - 1.7.0
  - EasyListview - 1.7.0

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.Mustangpeak@2 60b41242-d4b9-2247-b156-4ccd40706241
2007-09-11 08:33:06 +00:00

187 lines
5.2 KiB
ObjectPascal

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, EasyListview, Grids,
MPCommonObjects;
type
TForm1 = class(TForm)
SG: TEasyListview;
Panel1: TPanel;
EditRows: TEdit;
Label1: TLabel;
EditColumns: TEdit;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
CheckboxAllowOddEdits: TCheckBox;
CheckBoxEnableEdit: TCheckBox;
CheckBoxTabMoveFocus: TCheckBox;
CheckBoxCustomDraw: TCheckBox;
CheckBoxShowHeader: TCheckBox;
CheckBoxShowFocusRect: TCheckBox;
CheckBoxFullCellSelect: TCheckBox;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure SGItemImageDrawIsCustom(Sender: TCustomEasyListview;
Item: TEasyItem; Column: TEasyColumn; var IsCustom: Boolean);
procedure SGItemImageGetSize(Sender: TCustomEasyListview;
Item: TEasyItem; Column: TEasyColumn; var ImageWidth,
ImageHeight: Integer);
procedure SGItemImageDraw(Sender: TCustomEasyListview; Item: TEasyItem;
Column: TEasyColumn; ACanvas: TCanvas;
const RectArray: TEasyRectArrayObject; AlphaBlender: TEasyAlphaBlender);
procedure SGItemEditBegin(Sender: TCustomEasyListview; Item: TEasyItem;
var Column: Integer; var Allow: Boolean);
procedure CheckBoxEnableEditClick(Sender: TObject);
procedure CheckBoxTabMoveFocusClick(Sender: TObject);
procedure CheckBoxCustomDrawClick(Sender: TObject);
procedure CheckBoxShowHeaderClick(Sender: TObject);
procedure CheckBoxShowFocusRectClick(Sender: TObject);
procedure CheckBoxFullCellSelectClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure LoadGrid;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.LoadGrid;
var
Item: TEasyItem;
Column: TEasyColumn;
i, ItemCount: Integer;
begin
//
// for better performance use VirtualItem by calling
// Item := SG.Items.AddVirtual
// then use the OnItemGetCaption event to return the caption on demand.
//
SG.BeginUpdate();
SG.Header.Columns.Clear();
SG.Items.Clear;
try
for i := 0 to StrToInt(EditColumns.Text) - 1 do
begin
Column := SG.Header.Columns.Add();
Column.Width := 120;
Column.Caption := 'Column: ' + IntToStr(i);
end;
ItemCount := StrToInt(EditColumns.Text) * StrToInt(EditRows.Text);
for i := 0 to ItemCount - 1 do
begin
Item := SG.Items.Add();
Item.Caption := 'Column: ' + IntToStr(i mod SG.Header.Columns.Count) + ' Row: ' + IntToStr(i div SG.Header.Columns.Count);
end
finally
SG.EndUpdate();
end
end;
procedure TForm1.FormShow(Sender: TObject);
begin
LoadGrid
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SG.Items.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
LoadGrid;
end;
procedure TForm1.SGItemImageDrawIsCustom(Sender: TCustomEasyListview;
Item: TEasyItem; Column: TEasyColumn; var IsCustom: Boolean);
begin
IsCustom := CheckBoxCustomDraw.Checked;
end;
procedure TForm1.SGItemImageGetSize(Sender: TCustomEasyListview;
Item: TEasyItem; Column: TEasyColumn; var ImageWidth,
ImageHeight: Integer);
begin
ImageWidth := 1;
ImageHeight := 1;
end;
procedure TForm1.SGItemImageDraw(Sender: TCustomEasyListview;
Item: TEasyItem; Column: TEasyColumn; ACanvas: TCanvas;
const RectArray: TEasyRectArrayObject; AlphaBlender: TEasyAlphaBlender);
var
R: TRect;
begin
if Item.Selected and Item.OwnerListview.Focused then
ACanvas.Brush.Color := clHighLight
else
ACanvas.Brush.Color := clBtnFace;
R := RectArray.BoundsRect;
ACanvas.FillRect(RectArray.BoundsRect);
DrawEdge(ACanvas.Handle, R, EDGE_RAISED, BF_RECT);
ACanvas.Brush.Color := clBtnFace;
ACanvas.FillRect(RectArray.BoundsRect);
if Item.Selected then
DrawEdge(ACanvas.Handle, R, EDGE_SUNKEN, BF_RECT)
else
DrawEdge(ACanvas.Handle, R, EDGE_RAISED, BF_RECT);
end;
procedure TForm1.SGItemEditBegin(Sender: TCustomEasyListview;
Item: TEasyItem; var Column: Integer; var Allow: Boolean);
begin
if CheckboxAllowOddEdits.Checked then
Allow := Item.Index mod 2 = 0;
end;
procedure TForm1.CheckBoxEnableEditClick(Sender: TObject);
begin
SG.EditManager.Enabled := CheckBoxEnableEdit.Checked;
end;
procedure TForm1.CheckBoxTabMoveFocusClick(Sender: TObject);
begin
SG.EditManager.TabMoveFocus := CheckBoxTabMoveFocus.Checked;
end;
procedure TForm1.CheckBoxCustomDrawClick(Sender: TObject);
begin
if CheckBoxCustomDraw.Checked then
SG.Selection.TextColor := clBlack
else
SG.Selection.TextColor := clHighlight;
SG.Invalidate
end;
procedure TForm1.CheckBoxShowHeaderClick(Sender: TObject);
begin
SG.Header.Visible := CheckBoxShowHeader.Checked
end;
procedure TForm1.CheckBoxShowFocusRectClick(Sender: TObject);
begin
SG.Selection.UseFocusRect := CheckBoxShowFocusRect.Checked
end;
procedure TForm1.CheckBoxFullCellSelectClick(Sender: TObject);
begin
SG.Selection.FullCellPaint := CheckBoxFullCellSelect.Checked
end;
end.