📄 pasoutputdlg.pas
字号:
unit pasOutPutDlg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs, Controls, StdCtrls,
Buttons;
type
TfrmOutPutDlg = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
SrcList: TListBox;
DstList: TListBox;
SrcLabel: TLabel;
DstLabel: TLabel;
IncludeBtn: TSpeedButton;
IncAllBtn: TSpeedButton;
ExcludeBtn: TSpeedButton;
ExAllBtn: TSpeedButton;
procedure IncludeBtnClick(Sender: TObject);
procedure ExcludeBtnClick(Sender: TObject);
procedure IncAllBtnClick(Sender: TObject);
procedure ExcAllBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SrcListDblClick(Sender: TObject);
procedure DstListDblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
private
{ Private declarations }
FDesStr:TStringList;
public
{ Public declarations }
procedure MoveSelected(List: TCustomListBox; Items: TStrings);
procedure SetItem(List: TListBox; Index: Integer);
function GetFirstSelection(List: TCustomListBox): Integer;
procedure SetButtons;
constructor CreateDefine(AOwner:TComponent;str:TStringList);
end;
var
frmOutPutDlg: TfrmOutPutDlg;
implementation
{$R *.dfm}
uses BaseFind;
constructor TfrmOutPutDlg.CreateDefine(AOwner:TComponent;str:TStringList);
begin
FDesStr:=str;
inherited Create(AOwner);
end;
procedure TfrmOutPutDlg.IncludeBtnClick(Sender: TObject);
var
Index: Integer;
begin
Index := GetFirstSelection(SrcList);
MoveSelected(SrcList, DstList.Items);
SetItem(SrcList, Index);
end;
procedure TfrmOutPutDlg.ExcludeBtnClick(Sender: TObject);
var
Index: Integer;
begin
Index := GetFirstSelection(DstList);
MoveSelected(DstList, SrcList.Items);
SetItem(DstList, Index);
end;
procedure TfrmOutPutDlg.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 TfrmOutPutDlg.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 TfrmOutPutDlg.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 TfrmOutPutDlg.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 TfrmOutPutDlg.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 TfrmOutPutDlg.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 TfrmOutPutDlg.FormCreate(Sender: TObject);
begin
//BaseFind.FField.Open;
SrcList.Items.Clear;
SrcList.Items.Assign(FDesStr);
//BaseFind.FField.GetFieldNames(SrcList.Items);
//BaseFind.FField.Close;
end;
procedure TfrmOutPutDlg.SrcListDblClick(Sender: TObject);
begin
self.IncludeBtnClick(nil);
end;
procedure TfrmOutPutDlg.DstListDblClick(Sender: TObject);
begin
self.ExcludeBtnClick(nil);
end;
procedure TfrmOutPutDlg.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//Action:=caFree;
end;
procedure TfrmOutPutDlg.FormDestroy(Sender: TObject);
begin
//frmOutPutDlg:=nil;
end;
procedure TfrmOutPutDlg.OKBtnClick(Sender: TObject);
begin
//Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -