⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsskinprinter.pas

📁 一套非常好用的delphi控件,方便程序员工作
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_NAME')
    else
      Caption := BS_PRNDLG_NAME;
  end;

  PrinterCombobox := TbsSkinCombobox.Create(Form);
  with PrinterCombobox do
  begin
    Parent := PrinterGroupBox;
    DefaultFont := DefaultComboboxFont;
    UseSkinFont := Self.UseSkinFont;
    Items.Assign(Printer.Printers);
    ItemIndex := Printer.PrinterIndex;
    SkinDataName := FSelectSkinDataName;
    SkinData := CtrlSkinData;
    OnChange := PrinterComboBoxChange;
    Top := R.Top + 7;
    Left := R.Left + 80;
    Width := RectWidth(R) - 180;
   end;

  with TbsSkinButton.Create(Self) do
  begin
    Parent := PrinterGroupBox;
    Left := PrinterCombobox.Left + PrinterCombobox.Width + 10;
    Top := R.Top + 5;
    Width := 80;
    DefaultFont := DefaultButtonFont;
    UseSkinFont := Self.UseSkinFont;
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_PROPERTIES')
    else
      Caption := BS_PRNDLG_PROPERTIES;
    OnClick := PropertiesButtonClick;
  end;

  with TbsSkinStdLabel.Create(Self) do
  begin
    Parent := PrinterGroupBox;
    Left := R.Left + 10;
    Top := R.Top + 40;
    WordWrap := False;
    DefaultFont := DefaultLabelFont;
    UseSkinFont := Self.UseSkinFont;
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_STATUS')
    else
      Caption := BS_PRNDLG_STATUS;
  end;

  L1 := TbsSkinStdLabel.Create(Self);
  with L1 do
  begin
    Parent := PrinterGroupBox;
    Left := R.Left + 80;
    Top := R.Top + 40;
    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 + 60;
    WordWrap := False;
    DefaultFont := DefaultLabelFont;
    UseSkinFont := Self.UseSkinFont;
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_TYPE')
    else
      Caption := BS_PRNDLG_TYPE;
  end;

  L2 := TbsSkinStdLabel.Create(Self);
  with L2 do
  begin
    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;

  PaperGroupBox := TbsSkinGroupBox.Create(Self);

  with PaperGroupBox 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_PAPER')
    else
      Caption := BS_PRNDLG_PAPER;
  end;

  OrientationGroupBox := TbsSkinGroupBox.Create(Self);

  with OrientationGroupBox do
  begin
    Parent := Form;
    Left := PaperGroupBox.Left + PaperGroupBox.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_ORIENTATION')
    else
      Caption := BS_PRNDLG_ORIENTATION;
  end;

  R := OrientationGroupBox.GetSkinClientRect;

  RBPortrait := TbsSkinCheckRadioBox.Create(Self);
  with RBPortrait do
  begin
    GroupIndex := 1;
    Parent := OrientationGroupBox;
    Checked := Printer.Orientation = poPortrait;
    Left := R.Right - 100;
    Top := R.Top + 15;
    Width := 90;
    Radio := True;
    SkinDataName := 'radiobox';
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_PORTRAIT')
    else
      Caption := BS_PRNDLG_PORTRAIT;
    OnClick := RBPortraitClick;
  end;

  RBLandScape := TbsSkinCheckRadioBox.Create(Self);
  with RBLandScape do
  begin
    GroupIndex := 1;
    Parent := OrientationGroupBox;
    Checked := Printer.Orientation = poLandScape;
    Left := R.Right - 100;
    Top := R.Bottom - 45;
    Width := 90;
    Radio := True;
    SkinDataName := 'radiobox';
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_LANDSCAPE')
    else
      Caption := BS_PRNDLG_LANDSCAPE;
    OnClick := RBLandScapeClick;
  end;

  OrientationImage := TImage.Create(Self);
  with OrientationImage do
  begin
    Top := R.Top + 30;
    Left := R.Left + 25;
    Parent := OrientationGroupBox;
    AutoSize := True;
    Transparent := True;
    if Printer.Orientation = poPortrait
    then
      Picture.Bitmap.LoadFromResourceName(HInstance, 'BS_PORTRAIT')
    else
      Picture.Bitmap.LoadFromResourceName(HInstance, 'BS_LANDSCAPE');
  end;

  with TbsSkinStdLabel.Create(Self) do
  begin
    Parent := PaperGroupBox;
    Left := R.Left + 10;
    Top := R.Top + 20;
    WordWrap := False;
    DefaultFont := DefaultLabelFont;
    UseSkinFont := Self.UseSkinFont;
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_SIZE')
    else
      Caption := BS_PRNDLG_SIZE;
  end;

  with TbsSkinStdLabel.Create(Self) do
  begin
    Parent := PaperGroupBox;
    Left := R.Left + 10;
    Top := R.Top + 65;
    WordWrap := False;
    DefaultFont := DefaultLabelFont;
    UseSkinFont := Self.UseSkinFont;
    SkinData := CtrlSkinData;
    if (CtrlSkinData <> nil) and (CtrlSkinData.ResourceStrData <> nil)
    then
      Caption := CtrlSkinData.ResourceStrData.GetResStr('PRNDLG_SOURCE')
    else
      Caption := BS_PRNDLG_SOURCE;
  end;

  SizeComboBox := TbsSkinCombobox.Create(Form);
  with SizeComboBox do
  begin
    Parent := PaperGroupBox;
    DefaultFont := DefaultComboboxFont;
    UseSkinFont := Self.UseSkinFont;
    SkinDataName := FSelectSkinDataName;
    SkinData := CtrlSkinData;
    Top := R.Top + 17;
    Left := R.Left + 65;
    Width := 170;
    OnChange := SizeComboBoxChange;
   end;

  SourceComboBox := TbsSkinCombobox.Create(Form);
  with SourceComboBox do
  begin
    Parent := PaperGroupBox;
    DefaultFont := DefaultComboboxFont;
    UseSkinFont := Self.UseSkinFont;
    SkinDataName := FSelectSkinDataName;
    SkinData := CtrlSkinData;
    Top := R.Top + 60;
    Left := R.Left + 65;
    Width := 170;
    OnChange := SourceComboBoxChange;
   end;

  //
  LoadPapersAndBins;
  //

  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,
              OrientationGroupBox.Top + OrientationGroupBox.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,
              OrientationGroupBox.Top + OrientationGroupBox.Height + 10,
              70, 25);
    SkinDataName := FButtonSkinDataName;
    SkinData := CtrlSkinData;
    Form.ClientHeight := Top + Height + 10;
  end;
 
  OldPrinterIndex := Printer.PrinterIndex;

  try
    if Form.ShowModal = mrOk
    then
      begin
        Result := True;
      end
    else
      begin
        RestoreDocumentProperties;
        if Printer.PrinterIndex <> OldPrinterIndex
        then
          Printer.PrinterIndex := OldPrinterIndex;
        Result := False;
      end;
  finally
    Form.Free;
  end;

end;

procedure TbsSkinPrinterSetupDialog.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 TbsSkinPrinterSetupDialog.SetDefaultButtonFont(Value: TFont);
begin
  FDefaultButtonFont.Assign(Value);
end;

procedure TbsSkinPrinterSetupDialog.SetDefaultLabelFont(Value: TFont);
begin
  FDefaultLabelFont.Assign(Value);
end;

procedure TbsSkinPrinterSetupDialog.SetDefaultSelectFont(Value: TFont);
begin
  FDefaultSelectFont.Assign(Value);
end;

function TbsSkinPrinterSetupDialog.GetTitle: string;
begin
  Result := FTitle;
end;

procedure TbsSkinPrinterSetupDialog.SetTitle(const Value: string);
begin
  FTitle := Value;
end;

// TbsSkinSmallPrintDialog

constructor TbsSkinSmallPrintDialog.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FTitle := 'Print setup';

  FAlphaBlend := False;
  FAlphaBlendAnimation := False;
  F

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -