📄 lr_shezhi_unit.~pas
字号:
unit lr_shezhi_unit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs, Controls, StdCtrls,
Buttons, ExtCtrls, ComCtrls, DB, DBTables;
type
Tlr_shezhi = class(TForm)
Panel1: TPanel;
StatusBar1: TStatusBar;
SrcLabel: TLabel;
DstLabel: TLabel;
IncludeBtn: TSpeedButton;
IncAllBtn: TSpeedButton;
ExcludeBtn: TSpeedButton;
ExAllBtn: TSpeedButton;
SrcList: TListBox;
Dstlist: TListBox;
Panel2: TPanel;
btnOK: TSpeedButton;
btnCancel: TSpeedButton;
Table1: TTable;
DataSource1: TDataSource;
procedure IncludeBtnClick(Sender: TObject);
procedure ExcludeBtnClick(Sender: TObject);
procedure IncAllBtnClick(Sender: TObject);
procedure ExcAllBtnClick(Sender: TObject);
procedure SrcListDblClick(Sender: TObject);
procedure DstlistDblClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
{移动两个列表框的函数}
procedure MoveSelected(List: TCustomListBox; Items: TStrings);
procedure SetItem(List: TListBox; Index: Integer);
function GetFirstSelection(List: TCustomListBox): Integer;
procedure SetButtons;
end;
var
lr_shezhi: Tlr_shezhi;
implementation
uses gzlr_unit;
{$R *.DFM}
procedure Tlr_shezhi.IncludeBtnClick(Sender: TObject);
var
Index: Integer;
begin
Index := GetFirstSelection(SrcList);
MoveSelected(SrcList, DstList.Items);
SetItem(SrcList, Index);
end;
procedure Tlr_shezhi.ExcludeBtnClick(Sender: TObject);
var
Index: Integer;
begin
Index := GetFirstSelection(DstList);
MoveSelected(DstList, SrcList.Items);
SetItem(DstList, Index);
end;
procedure Tlr_shezhi.IncAllBtnClick(Sender: TObject);
var
I: Integer;
begin
for I := 0 to SrcList.Items.Count - 1 do
DstList.Items.AddObject(SrcList.Items[I],
SrcList.Items.Objects[I]);
SrcList.Items.Clear;
SetItem(SrcList, 0);
end;
procedure Tlr_shezhi.ExcAllBtnClick(Sender: TObject);
var
I: Integer;
begin
for I := 0 to DstList.Items.Count - 1 do
SrcList.Items.AddObject(DstList.Items[I], DstList.Items.Objects[I]);
DstList.Items.Clear;
SetItem(DstList, 0);
end;
procedure Tlr_shezhi.MoveSelected(List: TCustomListBox; Items: TStrings);
var
I: Integer;
begin
for I := List.Items.Count - 1 downto 0 do
if List.Selected[I] then
begin
Items.AddObject(List.Items[I], List.Items.Objects[I]);
List.Items.Delete(I);
end;
end;
procedure Tlr_shezhi.SetButtons;
var
SrcEmpty, DstEmpty: Boolean;
begin
SrcEmpty := SrcList.Items.Count = 0;
DstEmpty := DstList.Items.Count = 0;
IncludeBtn.Enabled := not SrcEmpty;
IncAllBtn.Enabled := not SrcEmpty;
ExcludeBtn.Enabled := not DstEmpty;
ExAllBtn.Enabled := not DstEmpty;
end;
function Tlr_shezhi.GetFirstSelection(List: TCustomListBox): Integer;
begin
for Result := 0 to List.Items.Count - 1 do
if List.Selected[Result] then Exit;
Result := LB_ERR;
end;
procedure Tlr_shezhi.SetItem(List: TListBox; Index: Integer);
var
MaxIndex: Integer;
begin
with List do
begin
SetFocus;
MaxIndex := List.Items.Count - 1;
if Index = LB_ERR then Index := 0
else if Index > MaxIndex then Index := MaxIndex;
Selected[Index] := True;
end;
SetButtons;
end;
procedure Tlr_shezhi.SrcListDblClick(Sender: TObject);
begin
includebtn.Click;
end;
procedure Tlr_shezhi.DstlistDblClick(Sender: TObject);
begin
excludebtn.Click;
end;
//更新具体录入的显示项目
procedure Tlr_shezhi.btnOKClick(Sender: TObject);
var
i: integer;
begin
if gzlrshezhi = 0 then
begin
if dstlist.Items.Count = 0 then
begin
table1.First;
with table1 do
while not eof do
begin
table1.Edit;
table1['lurubiaozhi'] := 0;
table1.post;
next;
end;
end
else
begin
TABLE1.First;
with table1 do
while not eof do
begin
table1.Edit;
table1['lurubiaozhi'] := 0;
table1.post;
next;
end;
for i := 0 to dstlist.Items.Count - 1 do
begin
//showmessage(dstlist.Items[i]);
table1.First;
if table1.Locate('gzdm', trim(copy(dstlist.Items[i], 1, 3)), [locaseinsensitive]) then
begin
table1.edit;
table1['lurubiaozhi'] := 1;
table1.Post;
end
else
begin
table1.edit;
table1['lurubiaozhi'] := 0;
table1.Post;
end
end;
end;
end;
//
if gzlrshezhi = 1 then
begin
if dstlist.Items.Count = 0 then
begin
table1.First;
with table1 do
while not eof do
begin
table1.Edit;
table1['luruteshu'] := 0;
table1.post;
next;
end;
end
else
begin
TABLE1.First;
with table1 do
while not eof do
begin
table1.Edit;
table1['luruteshu'] := 0;
table1.post;
next;
end;
for i := 0 to dstlist.Items.Count - 1 do
begin
table1.first;
if table1.Locate('gzdm', trim(copy(dstlist.Items[i], 1, 3)), [locaseinsensitive]) then
begin
table1.edit;
table1['luruteshu'] := 1;
table1.Post;
end
else
begin
table1.edit;
table1['luruteshui'] := 0;
table1.Post;
end
end;
end;
end;
if gzlrshezhi = 0 then
Application.MessageBox('通用录入项目设置成功!', '操作提示', MB_ICONWARNING)
else
Application.MessageBox('特殊录入项目设置成功!', '操作提示', MB_ICONWARNING);
table1.Close;
close;
//
end;
procedure Tlr_shezhi.btnCancelClick(Sender: TObject);
begin
close;
end;
procedure Tlr_shezhi.FormActivate(Sender: TObject);
begin
if gzlrshezhi = 0 then
begin
lr_shezhi.Caption := '通用录入项目设置';
dstlabel.Caption := '通用录入项目设置';
srclist.Items.Clear;
dstlist.Items.Clear;
table1.First;
with table1 do
while not eof do
begin
if table1['lurubiaozhi'] = 1 then
dstlist.Items.Add(table1['gzdm'] + ' ' + table1['xsmc'])
else
srclist.Items.Add(table1['gzdm'] + ' ' + table1['xsmc']);
next;
end;
end;
if gzlrshezhi = 1 then
begin
lr_shezhi.Caption := '特殊录入项目设置';
dstlabel.Caption := '特殊录入项目设置';
srclist.Items.Clear;
dstlist.Items.Clear;
table1.First;
with table1 do
while not eof do
begin
if table1['luruteshu'] = 1 then
dstlist.Items.Add(table1['gzdm'] + ' ' + table1['xsmc'])
else
srclist.Items.Add(table1['gzdm'] + ' ' + table1['xsmc']);
next;
end;
end;
if srclist.Items.Count > 0 then
begin
Includebtn.Enabled := true;
IncAllbtn.Enabled := True;
end;
if Dstlist.Items.Count > 0 then
begin
ExcludeBtn.Enabled := true;
ExAllbtn.Enabled := True;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -