120 lines
2.7 KiB
Plaintext
120 lines
2.7 KiB
Plaintext
unit DSelPerInfo;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, VirtualTrees,
|
|
ManagerPerInfo;
|
|
|
|
type
|
|
TDlgSelPerInfo = class(TForm)
|
|
pnClient: TPanel;
|
|
pnBottom: TPanel;
|
|
btnOk: TButton;
|
|
btnCancel: TButton;
|
|
vtList: TVirtualStringTree;
|
|
procedure vtListGetNodeDataSize(Sender: TBaseVirtualTree;
|
|
var NodeDataSize: Integer);
|
|
procedure btnOkClick(Sender: TObject);
|
|
procedure vtListFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
|
procedure vtListGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
|
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
|
private
|
|
{ Private declarations }
|
|
PerList_: TPerInfoEntList;
|
|
SelEnt_: PPerInfoEnt;
|
|
procedure RefreshList;
|
|
public
|
|
{ Public declarations }
|
|
Constructor Create(aOwner: TComponent; aList: TPerInfoEntList);
|
|
|
|
property SelEnt: PPerInfoEnt read SelEnt_;
|
|
end;
|
|
|
|
var
|
|
DlgSelPerInfo: TDlgSelPerInfo;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Tocsg.VTUtil, Tocsg.Strings;
|
|
|
|
resourcestring
|
|
RS_SelectResult = '검사 결과를 선택해 주십시오.';
|
|
|
|
{$R *.dfm}
|
|
|
|
Constructor TDlgSelPerInfo.Create(aOwner: TComponent; aList: TPerInfoEntList);
|
|
begin
|
|
Inherited Create(aOwner);
|
|
SelEnt_ := nil;
|
|
PerList_ := aList;
|
|
ASSERT(PerList_ <> nil);
|
|
RefreshList;
|
|
end;
|
|
|
|
procedure TDlgSelPerInfo.RefreshList;
|
|
var
|
|
i: Integer;
|
|
pData: PPerInfoEnt;
|
|
begin
|
|
vtList.BeginUpdate;
|
|
try
|
|
VT_Clear(vtList);
|
|
|
|
for i := 0 to PerList_.Count - 1 do
|
|
begin
|
|
pData := VT_AddChildData(vtLIst);
|
|
pData^ := PerList_[i]^;
|
|
end;
|
|
finally
|
|
vtList.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TDlgSelPerInfo.btnOkClick(Sender: TObject);
|
|
begin
|
|
SelEnt_ := VT_Get1SelNodeData(vtList);
|
|
if SelEnt_ = nil then
|
|
begin
|
|
MessageBox(Handle, PChar(RS_SelectResult), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
|
|
ModalResult := mrOk;
|
|
end;
|
|
|
|
procedure TDlgSelPerInfo.vtListFreeNode(Sender: TBaseVirtualTree;
|
|
Node: PVirtualNode);
|
|
var
|
|
pData: PPerInfoEnt;
|
|
begin
|
|
pData := Sender.GetNodeData(Node);
|
|
Finalize(pData^);
|
|
end;
|
|
|
|
procedure TDlgSelPerInfo.vtListGetNodeDataSize(Sender: TBaseVirtualTree;
|
|
var NodeDataSize: Integer);
|
|
begin
|
|
NodeDataSize := SizeOf(TPerInfoEnt);
|
|
end;
|
|
|
|
procedure TDlgSelPerInfo.vtListGetText(Sender: TBaseVirtualTree;
|
|
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
|
|
var CellText: string);
|
|
var
|
|
pData: PPerInfoEnt;
|
|
begin
|
|
pData := Sender.GetNodeData(Node);
|
|
|
|
case Column of
|
|
0 : CellText := IntToStr(Node.Index + 1);
|
|
1 : CellText := DateTimeToStr(pData.dtBegin);
|
|
2 : CellText := pData.sTime;
|
|
3 : CellText := InsertPointComma(pData.dwVulFileCnt, 3);
|
|
end;
|
|
end;
|
|
|
|
end.
|