📄 pjmultieditor.pas
字号:
(* GREATIS PRINT SUITE PRO *)
(* unit version 1.85.001 *)
(* Copyright (C) 2001-2007 Greatis Software *)
(* http://www.greatis.com/delphicb/printsuite/ *)
(* http://www.greatis.com/delphicb/printsuite/faq/ *)
(* http://www.greatis.com/bteam.html *)
unit PJMultiEditor;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
PSJob, PJMulti, StdCtrls, ComCtrls, PJMultiAdd;
type
TfrmMultiEditor = class(TForm)
lsvPrintJobs: TListView;
btnDelete: TButton;
btnMoveUp: TButton;
btnMoveDown: TButton;
btnAdd: TButton;
btnOk: TButton;
btnCancel: TButton;
btnClear: TButton;
procedure lsvPrintJobsEditing(Sender: TObject; Item: TListItem;
var AllowEdit: Boolean);
procedure btnAddClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure lsvPrintJobsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure FormShow(Sender: TObject);
procedure btnMoveUpClick(Sender: TObject);
procedure btnMoveDownClick(Sender: TObject);
procedure btnClearClick(Sender: TObject);
private
{ Private declarations }
procedure UpdateButtons;
public
{ Public declarations }
PrintJob: TCustomMultiPrintJob;
constructor Create(AOwner: TComponent); override;
procedure FillListView(APrintJob: TCustomMultiPrintJob; AListView: TListView);
end;
implementation
{$R *.DFM}
procedure TfrmMultiEditor.UpdateButtons;
begin
with lsvPrintJobs,Items do
begin
btnDelete.Enabled:=Assigned(Selected);
btnClear.Enabled:=Count>0;
btnMoveUp.Enabled:=Assigned(Selected) and (Selected.Index>0);
btnMoveDown.Enabled:=Assigned(Selected) and (Selected.Index<Pred(Count));
end;
end;
constructor TfrmMultiEditor.Create(AOwner: TComponent);
begin
inherited Create(Application);
end;
procedure TfrmMultiEditor.FillListView(APrintJob: TCustomMultiPrintJob; AListView: TListView);
var
i: Integer;
begin
with APrintJob.Owner do
for i:=0 to Pred(ComponentCount) do
if (Components[i] is TCustomPrintJob) and (Components[i]<>APrintJob) then
with AListView.Items.Add,TCustomPrintJob(Components[i]) do
begin
Caption:=Name;
SubItems.Add(Title);
Data:=APrintJob.Owner.Components[i];
end;
end;
procedure TfrmMultiEditor.lsvPrintJobsEditing(Sender: TObject;
Item: TListItem; var AllowEdit: Boolean);
begin
AllowEdit:=False;
end;
procedure TfrmMultiEditor.btnAddClick(Sender: TObject);
var
i: Integer;
begin
with TfrmMultiAdd.Create(Self) do
try
FillListView(PrintJob,lsvAddJobs);
with lsvAddJobs,Items do
begin
if ShowModal=mrOk then
begin
if SelCount=1 then
lsvPrintJobs.Items.Add.Assign(Selected)
else
for i:=0 to Pred(Count) do
if Items[i].Selected then
lsvPrintJobs.Items.Add.Assign(Items[i]);
end;
end;
finally
Free;
end;
UpdateButtons;
end;
procedure TfrmMultiEditor.btnDeleteClick(Sender: TObject);
var
I: Integer;
begin
with lsvPrintJobs,Items do
if Assigned(Selected) then
begin
I:=Selected.Index;
Selected.Delete;
if I>Pred(Count) then I:=Pred(Count);
Selected:=Items[I];
end;
UpdateButtons;
end;
procedure TfrmMultiEditor.lsvPrintJobsChange(Sender: TObject;
Item: TListItem; Change: TItemChange);
begin
if Item=(Sender as TListView).Selected then UpdateButtons;
end;
procedure TfrmMultiEditor.FormShow(Sender: TObject);
begin
with lsvPrintJobs,Items do
if Count>0 then
begin
Selected:=Items[0];
Selected.Focused:=True;
end;
UpdateButtons;
end;
procedure TfrmMultiEditor.btnMoveUpClick(Sender: TObject);
var
I: Integer;
LI: TListItem;
begin
with lsvPrintJobs do
begin
LI:=TListItem.Create(Items);
try
I:=Selected.Index;
if I>0 then
begin
LI.Assign(Selected);
Selected.Assign(Items[Pred(I)]);
Items[Pred(I)].Assign(LI);
Selected:=Items[Pred(I)];
end;
finally
LI.Free;
end;
end;
end;
procedure TfrmMultiEditor.btnMoveDownClick(Sender: TObject);
var
I: Integer;
LI: TListItem;
begin
with lsvPrintJobs do
begin
LI:=TListItem.Create(Items);
try
I:=Selected.Index;
if I<Pred(Items.Count) then
begin
LI.Assign(Selected);
Selected.Assign(Items[Succ(I)]);
Items[Succ(I)].Assign(LI);
Selected:=Items[Succ(I)];
end;
finally
LI.Free;
end;
end;
end;
procedure TfrmMultiEditor.btnClearClick(Sender: TObject);
begin
lsvPrintJobs.Items.Clear;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -