- 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
187 lines
5.2 KiB
ObjectPascal
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.
|