📄 paperparamsdef.~pas
字号:
unit PaperParamsDef;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, EnhLV, GLLV, ExtCtrls, Buttons, Ex2nmedt, StdCtrls,
InvDef, dpConst;
type
TfrmPaperParamsDef = class(TForm)
pnlTop: TPanel;
Panel2: TPanel;
Panel3: TPanel;
LstViewParams: TGradLineListView;
Panel4: TPanel;
edtDefines: TLabeledEdit;
edtParams1: TLabeledEdit;
edtParams2: TLabeledEdit;
edtNotes: TLabeledEdit;
edtMonth: TLabeledEdit;
edtFlag: TEx2NumEdit;
edtKeyLength: TEx2NumEdit;
lblFlag: TLabel;
lblKeyLength: TLabel;
stsBarCnt: TStatusBar;
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure LstViewParamsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
private
{ Private declarations }
Procedure ReadPaperParamsListView;
function SetListColumn: Integer;
function SetListView: Integer;
procedure ClearListView;
procedure MakeItemCaption(Item: TListItem);
procedure Set_currItem(Item: TListItem);
procedure SetNull;
procedure SetMultilingual;
public
{ Public declarations }
end;
var
frmPaperParamsDef: TfrmPaperParamsDef;
FParamsList: TList;
FSelectedItem: TListItem;
FOnMakeItemCaption,
FListViewClear,
FOnCloseForm: Boolean;
FColumnCount: integer;
implementation
uses Main, InvDM;
{$R *.dfm}
procedure TfrmPaperParamsDef.FormCreate(Sender: TObject);
begin
Top := 0;
Left := frmMain.Width;
Height := Height;
Width := Width;
FParamsList := TList.Create;
FParamsList.Clear;
SetMultilingual;
end;
procedure TfrmPaperParamsDef.FormShow(Sender: TObject);
begin
Top := 0;
Left := frmMain.Width;
//Height := Screen.Height-(Height - ClientHeight);
Width := Screen.Width- frmMain.Width;
ReadPaperParamsListView;
end;
procedure TfrmPaperParamsDef.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
//
end;
procedure TfrmPaperParamsDef.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
dm_inventory.ListFreeMemory(FParamsList);
end;
{********************************************************************************}
Procedure TfrmPaperParamsDef.ReadPaperParamsListView;
var
i: Integer;
SaveCursor: TCursor;
begin
for i := 0 to FParamsList.Count - 1 do
Dispose(FParamsList.Items[i]);
FParamsList.Clear;
SaveCursor := Screen.Cursor;
Screen.Cursor := crSqlWait;
try
dm_Inventory.Read_PaperParams(FParamsList);
FListViewClear:=True;
FColumnCount := SetListColumn; //--
LstViewParams.Selected := nil;
if SetListView > 0 then
begin
LstViewParams.TopItem.Selected := True;
LstViewParams.TopItem.Focused := True;
LstViewParams.SetFocus;
FSelectedItem := LstViewParams.TopItem;
Set_currItem(FSelectedItem);
end;
FListViewClear := False;
finally
stsBarCnt.Panels[0].Text := '符合条件的记录有:'+ IntToStr(LstViewParams.Items.Count)+' 条';
Screen.Cursor := crDefault;
end;
end;
function TfrmPaperParamsDef.SetListColumn: Integer;
var
Column: TListColumn;
Count: Integer;
begin
LstViewParams.Columns.Clear;
LstViewParams.Items.BeginUpdate; //--
LstViewParams.RowSelect := False;
Count := 0;
try
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90165, 'Defines');
Column.Width := LstViewParams.Font.Size * 20;
Inc(Count);
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90166, 'Params1');
Column.Width := LstViewParams.Font.Size * 10;
Inc(Count);
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90167, 'Params2');
Column.Width := LstViewParams.Font.Size * 10;
Column.Alignment := taLeftJustify;
Inc(Count);
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90168, 'Notes');
Column.Width := LstViewParams.Font.Size * 16;
Column.Alignment := taLeftJustify;
Inc(Count);
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90169, 'Month');
Column.Width := LstViewParams.Font.Size * 10;
Column.Alignment := taLeftJustify;
Inc(Count);
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90170, 'Flag');
Column.Width := LstViewParams.Font.Size * 6;
Column.Alignment := taLeftJustify;
Inc(Count);
Column := LstViewParams.Columns.Add;
Column.Caption := GetMultiLingalMsg(90171, 'KeyLength');
Column.Width := LstViewParams.Font.Size * 10;
Column.Alignment := taLeftJustify;
Inc(Count);
finally
LstViewParams.RowSelect := True;
LstViewParams.Items.EndUpdate; //--
end;
Result := Count;
end;
function TfrmPaperParamsDef.SetListView: Integer;
var
i, j, ItemCount: Integer;
lcP: PPaperParams;
Item: TListItem;
begin
ItemCount := 0;
FListViewClear := True;
ClearListView;
FListViewClear := False;
LockWindowUpdate(LstViewParams.Handle);
try
for i := 0 to FParamsList.Count - 1 do begin
lcP := FParamsList[i];
Item := LstViewParams.Items.Add;
for j := 0 to FColumnCount - 2 do
Item.Subitems.Add('');
lcP^.item := Item;
Item.Data := lcP;
MakeItemCaption(Item);
Inc(ItemCount);
end;
finally
LockWindowUpdate(0);
end;
Result := ItemCount;
end;
procedure TfrmPaperParamsDef.ClearListView;
begin
LstViewParams.Items.BeginUpdate;
try
LstViewParams.Items.Clear;
finally
LstViewParams.Items.EndUpdate;
end;
end;
procedure TfrmPaperParamsDef.MakeItemCaption(Item: TListItem);
var
lcP: PPaperParams;
begin
if Item = nil then Exit;
lcP := Item.Data;
if lcP = nil then Exit;
FOnMakeItemCaption := True; //--
Item.Caption := lcP^.defines;
Item.SubItems[0] := lcP^.params1;
Item.SubItems[1] := lcP^.params2;
Item.SubItems[2] := lcp^.snote;
Item.SubItems[3] := lcp^.month;
Item.SubItems[4] := IntToStr(lcp^.flag);
Item.SubItems[5] := IntToStr(lcp^.keylength);
FOnMakeItemCaption := False;
end;
procedure TfrmPaperParamsDef.Set_currItem(Item: TListItem);
var
lcp: PPaperParams;
begin
if (Item = nil) or ((item = nil) and (Item.Data <> nil)) then
begin
SetNull;
exit;
end
else begin
FSelectedItem := nil;
FSelectedItem := Item;
lcp := Item.Data;
edtDefines.Text := lcp^.defines;
edtParams1.Text := lcp^.params1;
edtParams2.Text := lcp^.params2;
edtNotes.Text := lcp^.snote;
edtMonth.Text := lcp^.month;
edtFlag.Value := lcp^.flag;
edtKeyLength.Value := lcp^.keylength;
end;
end;
procedure TfrmPaperParamsDef.SetNull;
begin
FSelectedItem := nil;
edtDefines.Text := '';
edtParams1.Text := '';
edtParams2.Text := '';
edtNotes.Text := '';
edtMonth.Text := '';
edtFlag.Value := 0;
edtKeyLength.Value := 12;
end;
procedure TfrmPaperParamsDef.LstViewParamsChange(Sender: TObject; Item: TListItem; Change: TItemChange);
begin
if FOnCloseForm then exit;
if Item.Data = nil then
begin
setNull;
exit;
end
else Set_currItem(LstViewParams.Selected);
end;
procedure TfrmPaperParamsDef.SetMultilingual;
begin
self.Caption := GetMultiLingalMsg(90164, 'Auto Paper Params Define');
pnlTop.Caption := GetMultiLingalMsg(90164, 'Auto Paper Params Define');
edtDefines.EditLabel.Caption := GetMultiLingalMsg(90165, 'Defines');
edtParams1.EditLabel.Caption := GetMultiLingalMsg(90166, 'Params1');
edtParams2.EditLabel.Caption := GetMultiLingalMsg(90167, 'Params2');
edtNotes.EditLabel.Caption := GetMultiLingalMsg(90168, 'Notes');
edtMonth.EditLabel.Caption := GetMultiLingalMsg(90169, 'Month');
lblFlag.Caption := GetMultiLingalMsg(90170, 'Flag');
lblKeyLength.Caption := GetMultiLingalMsg(90171, 'KeyLength');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -