?? bsskinprinter.pas
字號:
Parent := PrinterGroupBox;
Left := R.Left + 80;
Top := R.Top + 60;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
Caption := '';
end;
with TbsSkinStdLabel.Create(Self) do
begin
Parent := PrinterGroupBox;
Left := R.Left + 10;
Top := R.Top + 80;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_WHERE')
else
Caption := BS_PRNDLG_WHERE;
end;
L3 := TbsSkinStdLabel.Create(Self);
with L3 do
begin
Parent := PrinterGroupBox;
Left := R.Left + 80;
Top := R.Top + 80;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
Caption := '';
end;
with TbsSkinStdLabel.Create(Self) do
begin
Parent := PrinterGroupBox;
Left := R.Left + 10;
Top := R.Top + 100;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_COMMENT')
else
Caption := BS_PRNDLG_COMMENT;
end;
L4 := TbsSkinStdLabel.Create(Self);
with L4 do
begin
Parent := PrinterGroupBox;
Left := R.Left + 80;
Top := R.Top + 100;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
Caption := '';
end;
GetPrinterInfo(S1, S2, S3, S4);
L1.Caption := S1;
L2.Caption := S2;
L3.Caption := S3;
L4.Caption := S4;
PrintRangeGroupBox := TbsSkinGroupBox.Create(Self);
with PrintRangeGroupBox do
begin
Parent := Form;
Left := 10;
Top := PrinterGroupBox.Top + PrinterGroupBox.Height + 10;
Width := (Form.ClientWidth - 20) div 2 + 30;
Height := 120;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_PRINTRANGE')
else
Caption := BS_PRNDLG_PRINTRANGE;
if FGroupBoxTransparentMode then TransparentMode := True;
end;
CopiesGroupBox := TbsSkinGroupBox.Create(Self);
with CopiesGroupBox do
begin
Parent := Form;
Left := PrintRangeGroupBox.Left + PrintRangeGroupBox.Width + 10;
Top := PrinterGroupBox.Top + PrinterGroupBox.Height + 10;
Width := (Form.ClientWidth - 20) div 2 - 40;
Height := 120;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_COPIES')
else
Caption := BS_PRNDLG_COPIES;
if FGroupBoxTransparentMode then TransparentMode := True;
end;
R := CopiesGroupBox.GetSkinClientRect;
with TbsSkinStdLabel.Create(Self) do
begin
Parent := CopiesGroupBox;
Left := R.Left + 5;
Top := R.Top + 10;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_NUMCOPIES')
else
Caption := BS_PRNDLG_NUMCOPIES;
end;
NumCopiesEdit := TbsSkinSpinEdit.Create(Self);
with NumCopiesEdit do
begin
Parent := CopiesGroupBox;
MinValue := 1;
MaxValue := 1000;
if Self.Copies > 0
then
Printer.Copies := Self.Copies;
Value := Printer.Copies;
Increment := 1;
Left := R.Right - 65;
Top := R.Top + 5;
Width := 60;
SkinData := CtrlSkinData;
OnChange := NumCopiesEditChange;
end;
CollateCheckBox := TbsSkinCheckRadioBox.Create(Self);
with CollateCheckBox do
begin
Parent := CopiesGroupBox;
Checked := GetCollate;
Left := R.Right - 70;
Top := R.Top + 50;
Width := 60;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_COLLATE')
else
Caption := BS_PRNDLG_COLLATE;
Enabled := Printer.Copies > 1;
OnClick := CollateCheckBoxClick;
end;
CollateImage := TImage.Create(Self);
with CollateImage do
begin
Left := R.Left + 5;
Top := R.Bottom - 45;
Parent := CopiesGroupBox;
AutoSize := True;
Transparent := True;
if CollateCheckBox.Checked
then
Picture.Bitmap.LoadFromResourceName(HInstance, 'BS_COLLATE')
else
Picture.Bitmap.LoadFromResourceName(HInstance, 'BS_NOCOLLATE');
end;
with TbsSkinButton.Create(Form) do
begin
Parent := Form;
DefaultFont := DefaultButtonFont;
UseSkinFont := Self.UseSkinFont;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('MSG_BTN_OK')
else
Caption := BS_MSG_BTN_OK;
ModalResult := mrOk;
Default := True;
SetBounds(Form.ClientWidth - 160,
CopiesGroupBox.Top + CopiesGroupBox.Height + 10,
70, 25);
DefaultHeight := 25;
SkinDataName := FButtonSkinDataName;
SkinData := CtrlSkinData;
end;
with TbsSkinButton.Create(Form) do
begin
Parent := Form;
DefaultFont := DefaultButtonFont;
UseSkinFont := Self.UseSkinFont;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('MSG_BTN_CANCEL')
else
Caption := BS_MSG_BTN_CANCEL;
ModalResult := mrCancel;
Cancel := True;
SetBounds(Form.ClientWidth - 80,
CopiesGroupBox.Top + CopiesGroupBox.Height + 10,
70, 25);
SkinDataName := FButtonSkinDataName;
SkinData := CtrlSkinData;
Form.ClientHeight := Top + Height + 10;
end;
R := PrintRangeGroupBox.GetSkinClientRect;
RBAll := TbsSkinCheckRadioBox.Create(Self);
with RBAll do
begin
GroupIndex := 1;
Parent := PrintRangeGroupBox;
Checked := Self.PrintRange = bsprAllPages;
Left := R.Left + 10;
Top := R.Top + 5;
Width := 70;
Radio := True;
SkinDataName := 'radiobox';
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_ALL')
else
Caption := BS_PRNDLG_ALL;
end;
RBPages := TbsSkinCheckRadioBox.Create(Self);
with RBPages do
begin
GroupIndex := 1;
Parent := PrintRangeGroupBox;
Checked := Self.PrintRange = bsprPageNums;
Left := R.Left + 10;
Top := R.Top + 35;
Width := 70;
Radio := True;
SkinDataName := 'radiobox';
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_PAGES')
else
Caption := BS_PRNDLG_PAGES;
Enabled := bspoPageNums in Options;
end;
RBSelection := TbsSkinCheckRadioBox.Create(Self);
with RBSelection do
begin
GroupIndex := 1;
Parent := PrintRangeGroupBox;
Checked := Self.PrintRange = bsprSelection;
Left := R.Left + 10;
Top := R.Top + 65;
Width := 70;
Radio := True;
SkinDataName := 'radiobox';
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_SELECTION')
else
Caption := BS_PRNDLG_SELECTION;
Enabled := bspoSelection in Options;
end;
fromL := TbsSkinStdLabel.Create(Self);
with fromL do
begin
Parent := PrintRangeGroupBox;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_FROM')
else
Caption := BS_PRNDLG_FROM;
Left := RBPages.Left + RBPages.Width + 10;
Top := RBPages.Top + RBPages.Height div 2 - Height div 2 - 1;
Enabled := bspoPageNums in Options;
end;
FromPageEdit := TbsSkinSpinEdit.Create(Self);
with FromPageEdit do
begin
Parent := PrintRangeGroupBox;
MinValue := MinPage;
MaxValue := MaxPage;
Value := FromPage;
Increment := 1;
Left := fromL.Left + fromL.Width + 5;
Top := RBPages.Top + RBPages.Height div 2 - Height div 2 - 1;
Width := 50;
SkinData := CtrlSkinData;
Enabled := bspoPageNums in Options;
OnChange := FromPageEditChange;
end;
ToL := TbsSkinStdLabel.Create(Self);
with ToL do
begin
Parent := PrintRangeGroupBox;
WordWrap := False;
DefaultFont := DefaultLabelFont;
UseSkinFont := Self.UseSkinFont;
SkinData := CtrlSkinData;
if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
then
Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_TO')
else
Caption := BS_PRNDLG_TO;
Left := FromPageEdit.Left +FromPageEdit.Width + 5;
Top := RBPages.Top + RBPages.Height div 2 - Height div 2 - 1;
Enabled := bspoPageNums in Options;
end;
ToPageEdit := TbsSkinSpinEdit.Create(Self);
with ToPageEdit do
begin
Parent := PrintRangeGroupBox;
MinValue := MinPage;
MaxValue := MaxPage;
Value := ToPage;
Increment := 1;
Left := ToL.Left + ToL.Width + 5;
Top := RBPages.Top + RBPages.Height div 2 - Height div 2 - 1;
Width := 50;
SkinData := CtrlSkinData;
Enabled := bspoPageNums in Options;
OnChange := ToPageEditChange;
end;
OldPrinterIndex := Printer.PrinterIndex;
try
if Form.ShowModal = mrOk
then
begin
Result := True;
FCollate := CollateCheckBox.Checked;
FromPage := Round(FromPageEdit.Value);
ToPage := Round(ToPageEdit.Value);
Copies := Round(NumCopiesEdit.Value);
if RBAll.Checked then PrintRange := bsprAllPages else
if RBPages.Checked then PrintRange := bsprPageNums else
PrintRange := bsprSelection;
PrintToFile := PrintToFileCheckBox.Checked;
end
else
begin
RestoreDocumentProperties;
if Printer.PrinterIndex <> OldPrinterIndex
then
Printer.PrinterIndex := OldPrinterIndex;
Result := False;
end;
finally
Form.Free;
end;
end;
procedure TbsSkinPrintDialog.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (Operation = opRemove) and (AComponent = FSD) then FSD := nil;
if (Operation = opRemove) and (AComponent = FCtrlFSD) then FCtrlFSD := nil;
end;
procedure TbsSkinPrintDialog.SetDefaultButtonFont(Value: TFont);
begin
FDefaultButtonFont.Assign(Value);
end;
procedure TbsSkinPrintDialog.SetDefaultLabelFont(Value: TFont);
begin
FDefaultLabelFont.Assign(Value);
end;
procedure TbsSkinPrintDialog.SetDefaultSelectFont(Value: TFont);
begin
FDefaultSelectFont.Assign(Value);
end;
function TbsSkinPrintDialog.GetTitle: string;
begin
Result := FTitle;
end;
procedure TbsSkinPrintDialog.SetTitle(const Value: string);
begin
FTitle := Value;
end;
{ TbsPaperInfo }
function TbsPaperInfo.IsEqual(Source: TbsPaperInfo): Boolean;
begin
Result := (DMPaper = Source.DMPaper) and (FName = Source.Name) and
EqPoints(Size, Source.Size);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -