- 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
152 lines
3.9 KiB
ObjectPascal
152 lines
3.9 KiB
ObjectPascal
unit Unit1;
|
|
|
|
interface
|
|
|
|
{$I ..\Source\Compilers.inc}
|
|
|
|
uses
|
|
Windows,
|
|
Messages,
|
|
SysUtils,
|
|
{$IFDEF COMPILER_6_UP}
|
|
Variants,
|
|
{$ENDIF COMPILER_6_UP}
|
|
Classes,
|
|
Graphics,
|
|
Controls,
|
|
Forms,
|
|
Dialogs,
|
|
ImgList,
|
|
EasyListview,
|
|
StdCtrls,
|
|
ExtCtrls,
|
|
Menus, MPCommonObjects;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
ELV: TEasyListview;
|
|
ImageListSmall: TImageList;
|
|
ImageListLarge: TImageList;
|
|
ImageListGroup: TImageList;
|
|
Panel1: TPanel;
|
|
cbViews: TComboBox;
|
|
PopupMenuItem: TPopupMenu;
|
|
PopupMenuGroup: TPopupMenu;
|
|
PopupMenuColumn: TPopupMenu;
|
|
ItemSelectetd1: TMenuItem;
|
|
GroupSelected1: TMenuItem;
|
|
ColumnSelected1: TMenuItem;
|
|
PopupMenuGeneric: TPopupMenu;
|
|
GenericPopup1: TMenuItem;
|
|
CheckBoxSpecialItem: TCheckBox;
|
|
CheckBoxSpecialGroup: TCheckBox;
|
|
CheckBoxSpecialColumn: TCheckBox;
|
|
PopupMenuHeaderBackground: TPopupMenu;
|
|
HeaderBackgroundMenu1: TMenuItem;
|
|
PopupMenuHeader: TPopupMenu;
|
|
DefaultHeaderMenu1: TMenuItem;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure cbViewsChange(Sender: TObject);
|
|
procedure ELVColumnContextMenu(Sender: TCustomEasyListview;
|
|
HitInfo: TEasyHitInfoColumn; WindowPoint: TPoint;
|
|
var Menu: TPopupMenu);
|
|
procedure ELVGroupContextMenu(Sender: TCustomEasyListview;
|
|
HitInfo: TEasyHitInfoGroup; WindowPoint: TPoint;
|
|
var Menu: TPopupMenu; var Handled: Boolean);
|
|
procedure ELVItemContextMenu(Sender: TCustomEasyListview;
|
|
HitInfo: TEasyHitInfoItem; WindowPoint: TPoint; var Menu: TPopupMenu;
|
|
var Handled: Boolean);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TForm1.FormShow(Sender: TObject);
|
|
var
|
|
i, j: Integer;
|
|
Group: TEasyGroup;
|
|
Column: TEasyColumn;
|
|
Item: TEasyItem;
|
|
begin
|
|
FillStringsWithEasyListStyles(cbViews.Items);
|
|
cbViews.ItemIndex := Ord(ELV.View);
|
|
|
|
ELV.BeginUpdate();
|
|
try
|
|
for i := 0 to 2 do
|
|
begin
|
|
Column := ELV.Header.Columns.Add();
|
|
Column.Caption := 'Column: ' + IntToStr(i);
|
|
Column.Width := 100;
|
|
end;
|
|
|
|
ELV.PaintInfoItem.TileDetailCount := 3;
|
|
for i := 0 to 9 do
|
|
begin
|
|
Group := ELV.Groups.Add();
|
|
Group.Caption := 'Group: ' + IntToStr(i);
|
|
Group.ImageIndex := i mod ImageListGroup.Count;
|
|
for j := 0 to Random(10) + 10 do
|
|
begin
|
|
Item := Group.Items.Add();
|
|
Item.Caption := 'Item: ' + IntToStr(j);
|
|
Item.ImageIndex := j mod ImageListSmall.Count;
|
|
Item.Captions[1] := 'Detail 1';
|
|
Item.Captions[2] := 'Detail 2';
|
|
// Select which Column will supply the Detail in Tile view
|
|
Item.Details[1] := 1;
|
|
Item.Details[2] := 2;
|
|
end
|
|
end;
|
|
finally
|
|
ELV.ShowGroupMargins := True;
|
|
ELV.EndUpdate();
|
|
end
|
|
end;
|
|
|
|
procedure TForm1.cbViewsChange(Sender: TObject);
|
|
begin
|
|
ELV.View := TEasyListStyle( cbViews.ItemIndex);
|
|
end;
|
|
|
|
procedure TForm1.ELVColumnContextMenu(Sender: TCustomEasyListview;
|
|
HitInfo: TEasyHitInfoColumn; WindowPoint: TPoint; var Menu: TPopupMenu);
|
|
begin
|
|
if CheckBoxSpecialColumn.Checked then
|
|
begin
|
|
if Assigned(HitInfo.Column) then
|
|
Menu := PopupMenuColumn
|
|
else
|
|
Menu := PopupMenuHeaderBackground
|
|
end
|
|
end;
|
|
|
|
procedure TForm1.ELVGroupContextMenu(Sender: TCustomEasyListview;
|
|
HitInfo: TEasyHitInfoGroup; WindowPoint: TPoint; var Menu: TPopupMenu;
|
|
var Handled: Boolean);
|
|
begin
|
|
if CheckBoxSpecialGroup.Checked and (HitInfo.HitInfo <> []) then
|
|
Menu := PopupMenuGroup
|
|
end;
|
|
|
|
procedure TForm1.ELVItemContextMenu(Sender: TCustomEasyListview;
|
|
HitInfo: TEasyHitInfoItem; WindowPoint: TPoint; var Menu: TPopupMenu;
|
|
var Handled: Boolean);
|
|
begin
|
|
// Only show the Item menu if it is on the Icon or the Text
|
|
if CheckBoxSpecialItem.Checked and (HitInfo.HitInfo * [ehtOnIcon, ehtOnText] <> []) then
|
|
Menu := PopupMenuItem
|
|
end;
|
|
|
|
end.
|
|
|
|
|