rm_designer.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,241 行 · 第 1/5 页

PAS
2,241
字号
{ TRMToolbarSize }

constructor TRMToolbarSize.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
begin
  inherited Create(AOwner);
  Dockedto := DockTo;
  //  Parent := Self;
  FDesignerForm := TRMDesignerForm(AOwner);
  DockRow := 2;
  DockPos := 100;
  Name := 'ToolbarSize';

  BeginUpDate;
  btnSetWidthToMin := TRMToolbarButton.Create(Self);
  with btnSetWidthToMin do
  begin
    ImageIndex := 0;
    Images := FDesignerForm.ImageListSize;
    OnClick := btnSetWidthToMinClick;
    AddTo := Self;
  end;
  btnSetWidthToMax := TRMToolbarButton.Create(Self);
  with btnSetWidthToMax do
  begin
    ImageIndex := 1;
    Images := FDesignerForm.ImageListSize;
    OnClick := btnSetWidthToMaxClick;
    AddTo := Self;
  end;
  ToolbarSep979 := TRMToolbarSep.Create(Self);
  with ToolbarSep979 do
  begin
    AddTo := Self;
  end;

  btnSetHeightToMin := TRMToolbarButton.Create(Self);
  with btnSetHeightToMin do
  begin
    ImageIndex := 2;
    Images := FDesignerForm.ImageListSize;
    OnClick := btnSetHeightToMinClick;
    AddTo := Self;
  end;
  btnSetHeightToMax := TRMToolbarButton.Create(Self);
  with btnSetHeightToMax do
  begin
    ImageIndex := 3;
    Images := FDesignerForm.ImageListSize;
    OnClick := btnSetHeightToMaxClick;
    AddTo := Self;
  end;
  EndUpdate;

  Localize;
end;

procedure TRMToolbarSize.Localize;
begin
  RMSetStrProp(btnSetWidthToMin, 'Hint', rmRes + 202);
  RMSetStrProp(btnSetWidthToMax, 'Hint', rmRes + 203);
  RMSetStrProp(btnSetHeightToMin, 'Hint', rmRes + 204);
  RMSetStrProp(btnSetHeightToMax, 'Hint', rmRes + 205);
end;

procedure TRMToolbarSize.btnSetWidthToMinClick(Sender: TObject); //宽度最小
var
  i: Integer;
  t: TRMView;
  tmpWidth: Integer;
begin
  if FDesignerForm.SelNum < 2 then Exit;
  t := FDesignerForm.GetFirstSelected;
  if t.IsBand then Exit;
  FDesignerForm.BeforeChange;
  tmpWidth := t.spWidth_Designer;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter]))) then
    begin
      if t.spWidth_Designer < tmpWidth then
        tmpWidth := t.spWidth_Designer;
    end;
  end;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter]))) then
      t.spWidth_Designer := tmpWidth;
  end;
  FDesignerForm.FWorkSpace.GetMultipleSelected;
  FDesignerForm.RedrawPage;
end;

procedure TRMToolbarSize.btnSetWidthToMaxClick(Sender: TObject); //宽度最大
var
  i: Integer;
  t: TRMView;
  tmpWidth: Integer;
begin
  if FDesignerForm.SelNum < 2 then Exit;
  t := FDesignerForm.GetFirstSelected;
  if t.IsBand then Exit;
  FDesignerForm.BeforeChange;
  tmpWidth := t.spWidth_Designer;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter]))) then
    begin
      if t.spWidth_Designer > tmpWidth then
        tmpWidth := t.spWidth_Designer;
    end;
  end;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter]))) then
      t.spWidth_Designer := tmpWidth;
  end;
  FDesignerForm.FWorkSpace.GetMultipleSelected;
  FDesignerForm.RedrawPage;
end;

procedure TRMToolbarSize.btnSetHeightToMinClick(Sender: TObject); //高度最小
var
  i: Integer;
  t: TRMView;
  tmpHeight: Integer;
  lHaveBand: Boolean;
begin
  if FDesignerForm.SelNum < 2 then Exit;

  lHaveBand := False;
  t := FDesignerForm.GetFirstSelected;
  FDesignerForm.BeforeChange;
  tmpHeight := t.spHeight_Designer;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (not (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter])))) then
    begin
      if t.spHeight_Designer < tmpHeight then
        tmpHeight := t.spHeight_Designer;
    end;
  end;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (not (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter])))) then
    begin
      t.spHeight_Designer := tmpHeight;
      if t.IsBand then lHaveBand := True;
    end;
  end;

  if FDesignerForm.AutoChangeBandPos and lHaveBand then
  begin
    //    SendBandsToDown;
    FDesignerForm.Page.UpdateBandsPageRect;
  end;
  FDesignerForm.FWorkSpace.GetMultipleSelected;
  FDesignerForm.RedrawPage;
end;

procedure TRMToolbarSize.btnSetHeightToMaxClick(Sender: TObject); //高度最大
var
  i: Integer;
  t: TRMView;
  tmpHeight: Integer;
  lHaveBand: Boolean;
begin
  if FDesignerForm.SelNum < 2 then Exit;

  lHaveBand := False;
  t := FDesignerForm.GetFirstSelected;
  FDesignerForm.BeforeChange;
  tmpHeight := t.spHeight_Designer;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (not (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter])))) then
    begin
      if t.spHeight_Designer > tmpHeight then
        tmpHeight := t.spHeight_Designer;
    end;
  end;
  for i := 0 to FDesignerForm.Objects.Count - 1 do
  begin
    t := FDesignerForm.Objects[i];
    if t.Selected and ((not t.IsBand) or
      (t.IsBand and (not (TRMCustomBandView(t).BandType in [rmbtCrossHeader, rmbtCrossData, rmbtCrossFooter])))) then
    begin
      t.spHeight_Designer := tmpHeight;
      if t.IsBand then lHaveBand := True;
    end;
  end;

  if FDesignerForm.AutoChangeBandPos and lHaveBand then
  begin
    //    SendBandsToDown;
    FDesignerForm.Page.UpdateBandsPageRect;
  end;
  FDesignerForm.FWorkSpace.GetMultipleSelected;
  FDesignerForm.RedrawPage;
end;

{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMToolbarBorder }

constructor TRMToolbarBorder.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
var
  i: Integer;
begin
  inherited Create(AOwner);
  BeginUpdate;
  //  Parent := Self;
  Dockedto := DockTo;
  FDesignerForm := TRMDesignerForm(AOwner);
  DockRow := 2;
  DockPos := 0;
  Name := 'ToolbarBorder';

  btnFrameLeft := TRMToolbarButton.Create(Self);
  with btnFrameLeft do
  begin
    Tag := TAG_SetFrameLeft;
    AllowAllUp := True;
    GroupIndex := 4;
    ImageIndex := 1;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnFrameRight := TRMToolbarButton.Create(Self);
  with btnFrameRight do
  begin
    Tag := TAG_SetFrameRight;
    AllowAllUp := True;
    GroupIndex := 3;
    ImageIndex := 3;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnFrameTop := TRMToolbarButton.Create(Self);
  with btnFrameTop do
  begin
    Tag := TAG_SetFrameTop;
    AllowAllUp := True;
    GroupIndex := 2;
    ImageIndex := 0;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnFrameBottom := TRMToolbarButton.Create(Self);
  with btnFrameBottom do
  begin
    Tag := TAG_SetFrameBottom;
    AllowAllUp := True;
    GroupIndex := 1;
    ImageIndex := 2;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  ToolbarSep9717 := TRMToolbarSep.Create(Self);
  with ToolbarSep9717 do
  begin
    AddTo := Self;
  end;

  btnSetFrame := TRMToolbarButton.Create(Self);
  with btnSetFrame do
  begin
    Tag := TAG_SetFrame;
    ImageIndex := 4;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  btnNoFrame := TRMToolbarButton.Create(Self);
  with btnNoFrame do
  begin
    Tag := TAG_NoFrame;
    ImageIndex := 5;
    Images := FDesignerForm.ImageListFrame;
    OnClick := FDesignerForm.DoClick;
    AddTo := Self;
  end;
  ToolbarSep9722 := TRMToolbarSep.Create(Self);
  with ToolbarSep9722 do
  begin
    AddTo := Self;
  end;

  FBtnBackColor := TRMColorPickerButton.Create(FDesignerForm);
  with FBtnBackColor do
  begin
    Parent := Self;
    Tag := TAG_BackColor;
    ParentShowHint := True;
    ColorType := rmptFill;
    OnColorChange := FDesignerForm.DoClick;
  end;
  FBtnFrameColor := TRMColorPickerButton.Create(FDesignerForm);
  with FBtnFrameColor do
  begin
    Parent := Self;
    Tag := TAG_FrameColor;
    ParentShowHint := True;
    ColorType := rmptLine; //rmptHighlight;
    OnColorChange := FDesignerForm.DoClick;
  end;
  ToolbarSep9719 := TRMToolbarSep.Create(Self);
  with ToolbarSep9719 do
  begin
    AddTo := Self;
  end;

  btnSetFrameStyle := TRMFrameStyleButton {TRMToolbarButton}.Create(Self);
  with btnSetFrameStyle do
  begin
    Images := FDesignerForm.ImageListFrame;
    {$IFDEF USE_TB2K}
    Parent := Self;
    FDesignerForm.ImageListFrame.GetBitmap(6, Glyph);
    {$ELSE}
    ImageIndex := 6;
    AddTo := Self;
    {$ENDIF}
    OnStyleChange := btnSetFrameStyle_OnChange;
  end;
  FCmbFrameWidth := TRMComboBox97.Create(FDesignerForm);
  with FCmbFrameWidth do
  begin
    Parent := Self;
    Width := 44;
    Tag := TAG_FrameSize;
    DropDownCount := 14;
    Items.Add('0.1');
    Items.Add('0.5');
    Items.Add('1');
    Items.Add('1.5');
    for i := 2 to 10 do
      Items.Add(IntToStr(i));

    OnClick := FDesignerForm.DoClick;
  end;

  FBtnBackColor.CurrentColor := 0;
  FBtnFrameColor.CurrentColor := 0;

  EndUpdate;
  Localize;
end;

procedure TRMToolbarBorder.Localize;
begin
  RMSetStrProp(FCmbFrameWidth, 'Hint', rmRes + 194);
  RMSetStrProp(btnSetFrameStyle, 'Hint', rmRes + 191);
  RMSetStrProp(btnSetFrame, 'Hint', rmRes + 126);
  RMSetStrProp(FBtnFrameColor, 'Hint', rmRes + 210);
  RMSetStrProp(FBtnBackColor, 'Hint', rmRes + 209);
  RMSetStrProp(btnNoFrame, 'Hint', rmRes + 127);
  RMSetStrProp(btnSetFrame, 'Hint', rmRes + 126);
  RMSetStrProp(btnFrameRight, 'Hint', rmRes + 125);
  RMSetStrProp(btnFrameBottom, 'Hint', rmRes + 124);
  RMSetStrProp(btnFrameLeft, 'Hint', rmRes + 123);
  RMSetStrProp(btnFrameTop, 'Hint', rmRes + 122);
end;

procedure TRMToolbarBorder.SetStatus;
var
  t: TRMView;
begin
  if FDesignerForm.SelNum = 1 then
  begin
    t := FDesignerForm.Objects[FDesignerForm.TopSelected];
    if not t.IsBand then
    begin
      with t do
      begin
        btnFrameTop.Down := TopFrame.Visible;
        btnFrameLeft.Down := LeftFrame.Visible;
        btnFrameBottom.Down := BottomFrame.Visible;
        btnFrameRight.Down := RightFrame.Visible;
        FBtnBackColor.CurrentColor := FillColor;
        FBtnFrameColor.CurrentColor := t.TopFrame.Color;
        FCmbFrameWidth.Text := FloatToStrF(RMFromMMThousandths(t.TopFrame.mmWidth, rmutScreenPixels), ffGeneral, 2, 2);
      end;
    end;
  end
  else if FDesignerForm.SelNum > 1 then
  begin
    btnFrameTop.Down := False;
    btnFrameLeft.Down := False;
    btnFrameBottom.Down := False;
    btnFrameRight.Down := False;
    FBtnBackColor.CurrentColor := 0;
    FCmbFrameWidth.Text := '1';
  end;
end;

procedure TRMToolbarBorder.btnSetFrameStyle_OnChange(Sender: TObject);
begin
  FDesignerForm.DoClick(Sender);
end;

{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}

constructor TRMToolbarModifyPrepared.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
begin
  inherited Create(AOwner);
  BeginUpdate;
  Dockedto := DockTo;
  FDesignerForm := TRMDesignerForm(AOwner);
  DockRow := 4;
  DockPos := 0;
  Name := 'ToolbarModifyPrepared';
  CloseButton := False;

  btnModifyPreviedFirst := TRMToolbarButton.Create(Self);
  with btnModifyPreviedFirst do
  begin
    Width := 60;
    Images := FDesignerForm.ImageListModifyPreview;
    ImageIndex := 0;
    OnClick := btnModifyPreviedFirstClick;
    AddTo := Self;
    {$IFDEF USE_TB2k}
    DisplayMode := nbdmImageAndText;
    {$ELSE}
    DisplayMode := dmBoth;
    {$ENDIF}
  end;
  btnModifyPreviedPrev := TRMToolbarButton.Create(Self);
  with btnModifyPreviedPrev do
  begin

⌨️ 快捷键说明

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