Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

unit fGMV_SelectColor;

interface

uses
Windows,
Messages,
SysUtils,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
ComCtrls,
ImgList,
StdCtrls,
ExtCtrls, System.ImageList;

type
TfrmGMV_SelectColor = class(TForm)
ilColors: TImageList;
Panel1: TPanel;
lvColors: TListView;
procedure FormCreate(Sender: TObject);
procedure lvColorsSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure lvColorsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure lvColorsDblClick(Sender: TObject);
private
FSelectedColor: Integer;
{ Private declarations }
public
{ Public declarations }
end;

var
frmGMV_SelectColor: TfrmGMV_SelectColor;
ilSelectColors: TImageList;

function SelectColor(Ctrl: TControl; var iColor: Integer): Boolean;

implementation

uses uGMV_Const, system.Types;

{$R *.DFM}

function SelectColor(Ctrl: TControl; var iColor: Integer): Boolean;
var
pt: TPoint;
begin
Result := False;
if not Assigned(frmGMV_SelectColor) then
Application.CreateForm(TfrmGMV_SelectColor, frmGMV_SelectColor);

with frmGMV_SelectColor do
begin
pt := Ctrl.Parent.ClientToScreen(Point(Ctrl.Left, Ctrl.Top));
Left := pt.x;
Top := pt.y + Ctrl.Height;
FSelectedColor := iColor;
if (iColor > -1) and (iColor < lvColors.Items.Count) then
begin
lvColors.Items[iColor].Selected := True;
lvColors.Selected := lvColors.Items[iColor];
end;
ShowModal;
if ModalResult = mrOk then
begin
iColor := FSelectedColor;
Result := True;
end;
end;
end;

procedure TfrmGMV_SelectColor.FormCreate(Sender: TObject);
var
i: integer;
begin
lvColors.SmallImages := ilColors;
for i := 0 to ilColors.Count - 1 do
with lvColors.Items.Add do
begin
Caption := DISPLAYNAMES[i];
ImageIndex := i;
end;
end;

procedure TfrmGMV_SelectColor.lvColorsSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
FSelectedColor := Item.ImageIndex;
end;

procedure TfrmGMV_SelectColor.lvColorsKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = VK_ESCAPE then
ModalResult := mrCancel;
if Key = VK_RETURN then
ModalResult := mrOk;
end;

procedure TfrmGMV_SelectColor.lvColorsDblClick(Sender: TObject);
begin
ModalResult := mrOK;
end;

end.