Componentes.Terceros.Mustan.../official/1.7.0/EasyListview/Demos/Context Menus/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

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.