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

📄 frmdrawgridcellsetupunt.pas

📁 EAComps手工画报表 对写报表编辑器有一定的参考价值
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    begin
      B := True;
      FParam.Cells[I].ReadOnly := chkReadOnly.Checked;
    end;
    if chkVisible.Tag = 1 then
    begin
      B := True;
      FParam.Cells[I].Visible := chkVisible.Checked;
    end;
{ frame }
    if cbBackColor.Tag = 1 then
    begin
      B := True;
      FParam.Cells[I].Color := cbBackColor.Selected;
    end;
  end;
{ frame }
  if dfpFrame.Tag = 1 then
  begin
    B := True;
    vFrames := [];

    if dfpFrame.LeftFrame then
      vFrames := vFrames + [egfLeft];
    if dfpFrame.TopFrame then
      vFrames := vFrames + [egfTop];
    if dfpFrame.RightFrame then
      vFrames := vFrames + [egfRight];
    if dfpFrame.BottomFrame then
      vFrames := vFrames + [egfBottom];
    if dfpFrame.HCenter then
      vFrames := vFrames + [egfHorz];
    if dfpFrame.VCenter then
      vFrames := vFrames + [egfVert];
    if dfpFrame.LeftDiagonal then
      vFrames := vFrames + [egfLeftDiagonal];
    if dfpFrame.RightDiagonal then
      vFrames := vFrames + [egfRightDiagonal];
      
    FParam.Grid.SetSelectedCellFrames(vFrames);
  end;
  if B then
    ModalResult := IDOK
  else
    Close;
end;

procedure TfrmDrawGridCellSetup.cbBackColorChange(Sender: TObject);
begin
  dfpFrame.Color := cbBackColor.Selected;
  cbBackColor.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.dfpFrameMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
  begin
    UpdateFrameButtonDown;
    dfpFrame.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.btnFrame_HorzCenterClick(Sender: TObject);
begin
  dfpFrame.HCenter := not dfpFrame.HCenter;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_BottomClick(Sender: TObject);
begin
  dfpFrame.BottomFrame := not dfpFrame.BottomFrame;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_LeftClick(Sender: TObject);
begin
  dfpFrame.LeftFrame := not dfpFrame.LeftFrame;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_VertCenterClick(Sender: TObject);
begin
  dfpFrame.VCenter := not dfpFrame.VCenter;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_RightClick(Sender: TObject);
begin
  dfpFrame.RightFrame := not dfpFrame.RightFrame;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_ToLeftTopClick(Sender: TObject);
begin
  dfpFrame.LeftDiagonal := not dfpFrame.LeftDiagonal;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_ToRightTopClick(Sender: TObject);
begin
  dfpFrame.RightDiagonal := not dfpFrame.RightDiagonal;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_AllNullClick(Sender: TObject);
begin
  dfpFrame.ClearAll;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_CrossClick(Sender: TObject);
begin
  dfpFrame.HCenter := True;
  dfpFrame.VCenter := True;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_OuterClick(Sender: TObject);
begin
  dfpFrame.TopFrame := True;
  dfpFrame.LeftFrame := True;
  dfpFrame.BottomFrame := True;
  dfpFrame.RightFrame := True;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnFrame_TopClick(Sender: TObject);
begin
  dfpFrame.TopFrame := not dfpFrame.TopFrame;
  UpdateFrameButtonDown;
  dfpFrame.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.dtpDateMaxChange(Sender: TObject);
begin
  dtpDateMax.Tag := 1;
  if dtpDateMin.Date > dtpDateMax.Date then
  begin
    dtpDateMin.Date := dtpDateMax.Date;
    dtpDateMin.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.dtpDateMinChange(Sender: TObject);
begin
  dtpDateMax.Tag := 1;
  if dtpDateMax.Date < dtpDateMin.Date then
  begin
    dtpDateMax.Date := dtpDateMin.Date;
    dtpDateMax.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.btnImageOpenClick(Sender: TObject);
begin
  if dlgOpenPicture.Execute then
  begin
    imgImagePic.Picture.LoadFromFile(dlgOpenPicture.FileName);    
    UpdateImagePic;
    imgImagePic.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.UpdateImagePic;
var
  vW, vH, vTmp: Integer;
  vFloat: Double;
begin
  if (imgImagePic.Picture.Width = 0) or (imgImagePic.Picture.Height = 0) then
  begin
    dpImagePic.Caption := '(无)';
    Exit;
  end
  else begin
    dpImagePic.Caption := '';
  end;

  case cboImageAlign.ItemIndex of
    0: begin
      imgImagePic.Align := alNone;
      imgImagePic.Stretch := False;
      vW := imgImagePic.Picture.Graphic.Width;
      vH := imgImagePic.Picture.Graphic.Height;
      imgImagePic.Width := vW;
      imgImagePic.Height := vH;
      imgImagePic.Left := Trunc((dpImagePic.Width - vW) / 2);
      if imgImagePic.Left < 0 then
        imgImagePic.Left := 0;
      imgImagePic.Top := Trunc((dpImagePic.Height - vH) / 2);
      if imgImagePic.Top < 0 then
        imgImagePic.Top := 0;
    end;
    1: begin
      imgImagePic.Align := alClient;
      imgImagePic.Stretch := True;
    end;
    2: begin
      imgImagePic.Align := alNone;
      imgImagePic.Stretch := True;
      vW := imgImagePic.Picture.Graphic.Width;
      vH := imgImagePic.Picture.Graphic.Height;

      if vW > cSImageWidth then
      begin
        vFloat := (cSImageWidth - vW) / vW;
        vTmp := Trunc(vH * (1 + vFloat));
        if vTmp > cSImageHeight then
        begin
          vFloat := (cSImageHeight - vH) / vH;
          vTmp := Trunc(vW * (1 + vFloat));
          vW := vTmp;
          vH := cSImageHeight;
        end
        else begin
          vW := cSImageWidth;
          vH := vTmp;
        end;
      end
      else if vH < cSImageHeight then
      begin
        vFloat := (cSImageHeight - vH) / vH;
        vTmp := Trunc(vW * (1 + vFloat));
        if vTmp > cSImageWidth then
        begin
          vFloat := (cSImageWidth - vW) / vW;
          vTmp := Trunc(vH * (1 + vFloat));
          vW := cSImageWidth;
          vH := vTmp;
        end
        else begin
          vW := vTmp;
          vH := cSImageHeight;
        end;
      end;

      imgImagePic.Width := vW;
      imgImagePic.Height := vH;
      imgImagePic.Left := Trunc((cSImageWidth - vW) / 2);
      imgImagePic.Top := Trunc((cSImageHeight - vH) / 2);
    end;
  end;
end;

procedure TfrmDrawGridCellSetup.cboImageAlignChange(Sender: TObject);
begin
  UpdateImagePic;
  imgImagePic.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.imgImagePicDblClick(Sender: TObject);
begin
  btnImageOpenClick(btnImageOpen);
end;

procedure TfrmDrawGridCellSetup.btnButtonPicClick(Sender: TObject);
begin
  if dlgOpenPicture.Execute then
  begin
    UpdateButtonPic;
    imgButtonPic.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.UpdateButtonPic;
var
  vW, vH: Integer;
begin
  if (imgButtonPic.Picture.Width = 0) or (imgButtonPic.Picture.Height = 0) then
  begin
    dpButtonPic.Caption := '(无)';
    Exit;
  end
  else begin
    dpButtonPic.Caption := '';
  end;

  imgButtonPic.Align := alNone;
  vW := imgButtonPic.Picture.Graphic.Width;
  vH := imgButtonPic.Picture.Graphic.Height;

  if vW > cSImageWidth then
  begin
    vH := vH - Trunc(vH * (vW - cSImageWidth) / vW);
    vW := cSImageWidth;
  end
  else if vW < cSImageWidth then
  begin
    vH := vH + Trunc(vH * (cSImageWidth - vW) / vW);
    vW := cSImageWidth;
  end;

  if (vW <> cSImageWidth) or (vH > cSImageHeight) then
  begin
    if vH > cSImageHeight then
    begin
      vW := vW - Trunc(vW * (vH - cSImageHeight) / vH);
      vH := cSImageHeight;
    end
    else if vH < cSImageHeight then
    begin
      vW := vW + Trunc(vW * (cSImageHeight - vH) / vH);
      vH := cSImageHeight;
    end;
  end;

  imgButtonPic.Width := vW;
  imgButtonPic.Height := vH;
  imgButtonPic.Left := Trunc((cSImageWidth - vW) / 2);
  imgButtonPic.Top := Trunc((cSImageHeight - vH) / 2);
end;

procedure TfrmDrawGridCellSetup.imgButtonPicDblClick(Sender: TObject);
begin
  btnButtonPicClick(btnButtonPic);
end;

procedure TfrmDrawGridCellSetup.dpButtonPicDblClick(Sender: TObject);
begin
  btnButtonPicClick(btnButtonPic);
end;

procedure TfrmDrawGridCellSetup.dpImagePicDblClick(Sender: TObject);
begin
  btnImageOpenClick(btnImageOpen);
end;

procedure TfrmDrawGridCellSetup.UpdateDecimalButtonEnable;
begin
  edtDecimalLen.Enabled := not chkNumFree.Checked;
  edtNumMax.Enabled := not chkNumFree.Checked;
  edtNumMin.Enabled := not chkNumFree.Checked;
end;

procedure TfrmDrawGridCellSetup.chkNumFreeClick(Sender: TObject);
begin
  UpdateDecimalButtonEnable;
  chkNumFree.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.SpeedButton2Click(Sender: TObject);
begin
  imgButtonPic.Picture.Assign(nil);
  imgButtonPic.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.SpeedButton1Click(Sender: TObject);
begin
  imgImagePic.Picture.Assign(nil);
  imgImagePic.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.btnComboAdjustClick(Sender: TObject);
var
  P: TEAPubMemoEditParam;
  vStr: string;
begin
  P.IsDelimited := True;
  P.EditValue := cboComboValue.Items.DelimitedText;
  P.Caption := '调整显示列表';
  P.ReadOnly := False;
  P.ShowStatus := False;
  if ShowEAPubMemoEditDlg(P) then
  begin
    vStr := cboComboValue.Text;
    cboComboValue.Items.DelimitedText := P.EditValue;
    cboComboValue.ItemIndex := cboComboValue.Items.IndexOf(vStr);
    cboComboValue.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.edtTextValueButtonClick(Sender: TObject;
  ClickObject: TEAButtonClickObject);
var
  P: TEAPubMemoEditParam;
begin
  P.IsDelimited := False;
  P.EditValue := edtTextValue.Text;
  P.Caption := '显示值';
  P.ReadOnly := False;
  P.ShowStatus := False;
  P.MaxLength := edtTextValue.MaxLength;
  if ShowEAPubMemoEditDlg(P) then
  begin
    edtTextValue.Text := P.EditValue;
    edtTextValue.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.edtButtonValueButtonClick(Sender: TObject;
  ClickObject: TEAButtonClickObject);
var
  P: TEAPubMemoEditParam;
begin
  P.IsDelimited := False;
  P.EditValue := edtButtonValue.Text;
  P.Caption := '显示值';
  P.ReadOnly := False;
  P.ShowStatus := False;
  P.MaxLength := edtButtonValue.MaxLength;
  if ShowEAPubMemoEditDlg(P) then
  begin
    edtButtonValue.Text := P.EditValue;
    edtButtonValue.Tag := 1;
  end;
end;

procedure TfrmDrawGridCellSetup.lbStaticListDrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  if odSelected in State then
  begin
    lbStaticList.Canvas.Font.Color := clWindow;
    lbStaticList.Canvas.Brush.Color := clHighlight;
  end
  else begin
    lbStaticList.Canvas.Font.Color := clWindowText;
    lbStaticList.Canvas.Brush.Color := clWindow;
  end;

  lbStaticList.Canvas.FillRect(Rect);
  ImgList.Draw(lbStaticList.Canvas, Rect.Left + 2, Rect.Top, cSTitleImg);
  Rect.Left := Rect.Left + 20;
  lbStaticList.Canvas.TextOut(Rect.Left, Rect.Top + 1, lbStaticList.Items[Index]);
end;

procedure TfrmDrawGridCellSetup.edtTextValueChange(Sender: TObject);
begin
  edtTextValue.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.edtTextPrefixChange(Sender: TObject);
begin
  edtTextPrefix.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.edtTextPostfixChange(Sender: TObject);
begin
  edtTextPostfix.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.edtButtonValueChange(Sender: TObject);
begin
  edtButtonValue.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.cboComboValueChange(Sender: TObject);
begin
  cboComboValue.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.chkCheckValueClick(Sender: TObject);
begin
  lbStaticList.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.cboDateFmtChange(Sender: TObject);
begin
  cboDateFmt.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.edtDecimalLenChange(Sender: TObject);
begin
  edtDecimalLen.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.edtNumMaxChange(Sender: TObject);
begin
  edtNumMax.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.edtNumMinChange(Sender: TObject);
begin
  edtNumMin.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.cboHAlignChange(Sender: TObject);
begin
  cboHAlign.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.cboVAlignChange(Sender: TObject);
begin
  cboVAlign.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.chkWordwrapClick(Sender: TObject);
begin
  chkWordwrap.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.cboCheckValueChange(Sender: TObject);
begin
  cboCheckValue.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.chkReadOnlyClick(Sender: TObject);
begin
  chkReadOnly.Tag := 1;
end;

procedure TfrmDrawGridCellSetup.chkVisibleClick(Sender: TObject);
begin
  chkVisible.Tag := 1;
end;

end.

⌨️ 快捷键说明

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