📄 frmdrawgridstaticgridsetupunt.pas
字号:
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := lbTitleList.Count - 1 downto 0 do
begin
if (I = lbTitleList.Count - 1) and lbTitleList.Selected[I] then
Exit;
if lbTitleList.Selected[I] then
begin
lbTitleList.Items.Move(I, I + 1);
FParam.StaticGrid.MoveTitle(I, I + 1);
end;
end;
end;
procedure TfrmDrawGridStaticGridSetup.btnTitleFontSetClick(
Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
dlgFont.Font := labTitleTest.Font;
if dlgFont.Execute then
begin
labTitleTest.Font := dlgFont.Font;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].Font := dlgFont.Font;
LoadOneTitleInfo;
end;
end;
procedure TfrmDrawGridStaticGridSetup.btnDataFontSetClick(Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
dlgFont.Font := labDataTest.Font;
if dlgFont.Execute then
begin
labDataTest.Font := dlgFont.Font;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].ValueInfo.Font := dlgFont.Font;
end;
end;
procedure TfrmDrawGridStaticGridSetup.edtTitleValueChange(Sender: TObject);
var
vIndex: Integer;
begin
vIndex := lbTitleList.ItemIndex;
if lbTitleList.SelCount > 1 then
Exit;
FParam.StaticGrid.Titles[vIndex].Text := edtTitleValue.Text;
end;
procedure TfrmDrawGridStaticGridSetup.cboTitleHAlignChange(
Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].HorzPos :=
TEAHorzPos(cboTitleHAlign.ItemIndex);
LoadOneTitleInfo;
end;
procedure TfrmDrawGridStaticGridSetup.cboTitleVAlignChange(
Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].VertPos :=
TEAVertPos(cboTitleVAlign.ItemIndex);
LoadOneTitleInfo;
end;
procedure TfrmDrawGridStaticGridSetup.cboCellTypeChange(Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].FieldType :=
TEAFieldType(cboCellType.ItemIndex);
LoadOneTitleInfo;
end;
procedure TfrmDrawGridStaticGridSetup.labTitleTestDblClick(
Sender: TObject);
begin
btnTitleFontSetClick(btnTitleFontSet);
end;
procedure TfrmDrawGridStaticGridSetup.labDataTestDblClick(Sender: TObject);
begin
btnDataFontSetClick(btnDataFontSet);
end;
procedure TfrmDrawGridStaticGridSetup.edtTitleValueButtonClick(
Sender: TObject; ClickObject: TEAButtonClickObject);
var
vIndex: Integer;
P: TEAPubMemoEditParam;
begin
vIndex := lbTitleList.ItemIndex;
if lbTitleList.SelCount > 1 then
Exit;
P.ReadOnly := False;
P.Caption := '标题文字';
P.EditValue := edtTitleValue.Text;
P.ShowStatus := False;
P.IsDelimited := False;
if ShowEAPubMemoEditDlg(P) then
begin
edtTitleValue.Text := P.EditValue;
FParam.StaticGrid.Titles[vIndex].Text := P.EditValue;
end;
end;
procedure TfrmDrawGridStaticGridSetup.edtDataFmtChange(Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].ValueInfo.FormatStr :=
edtDataFmt.Text;
end;
procedure TfrmDrawGridStaticGridSetup.cboDataHAlignChange(Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].ValueInfo.HorzPos :=
TEAHorzPos(cboDataHAlign.ItemIndex);
end;
procedure TfrmDrawGridStaticGridSetup.cboDataVAlignChange(Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].ValueInfo.VertPos :=
TEAVertPos(cboDataHAlign.ItemIndex);
end;
procedure TfrmDrawGridStaticGridSetup.chkDataWordWrapClick(
Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].ValueInfo.WordWrap :=
chkDataWordWrap.Checked;
end;
procedure TfrmDrawGridStaticGridSetup.chkDataShowZeroValueClick(
Sender: TObject);
var
I: Integer;
begin
if lbTitleList.SelCount = 0 then
Exit;
for I := 0 to lbTitleList.Count - 1 do
if lbTitleList.Selected[I] then
FParam.StaticGrid.Titles[I].ValueInfo.ShowZeroValue :=
chkDataShowZeroValue.Checked;
end;
procedure TfrmDrawGridStaticGridSetup.lbTitleListClick(Sender: TObject);
begin
LoadOneTitleInfo;
end;
procedure TfrmDrawGridStaticGridSetup.bwWizardPageChange(Sender: TObject);
begin
if pcMain.ActivePageIndex = 0 then
begin
labTitle.Caption := '第一步 数据信息设置';
labExplain.Caption := '设置要显示的标题头及数据区域格式信息。';
end
else begin
labTitle.Caption := '第二步 大小设置';
labExplain.Caption := '设置要静态表的显示大小信息。';
end;
end;
procedure TfrmDrawGridStaticGridSetup.grdSizeSetDrawCell(Sender: TObject;
ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
vTop: Integer;
begin
if (ARow = 0) or (ACol = 0) then
begin
grdSizeSet.Canvas.Pen.Color := clWindow;
TEAPaintFun.Draw_Line(grdSizeSet.Canvas, Rect.Left, Rect.Top, Rect.Left, Rect.Bottom + 1);
TEAPaintFun.Draw_Line(grdSizeSet.Canvas, Rect.Left, Rect.Top, Rect.Right, Rect.Top);
grdSizeSet.Canvas.Pen.Color := clGray;
TEAPaintFun.Draw_Line(grdSizeSet.Canvas, Rect.Right, Rect.Top, Rect.Right, Rect.Bottom + 1);
TEAPaintFun.Draw_Line(grdSizeSet.Canvas, Rect.Left + 1, Rect.Bottom, Rect.Right + 1, Rect.Bottom);
Rect := TEARectFun.ZoomRect(Rect, -1, 0);
if ACol = 0 then
grdSizeSet.Canvas.Brush.Color := clBtnFace
else
grdSizeSet.Canvas.Brush.Color := pnlTitleColor.Color;
grdSizeSet.Canvas.FillRect(Rect);
vTop := Rect.Top + Round((TEARectFun.GetRectHeight(Rect) - grdSizeSet.Canvas.TextHeight('整')) / 2);
if vTop < Rect.Top then
vTop := Rect.Top;
grdSizeSet.Canvas.TextOut(Rect.Left + 2, vTop, grdSizeSet.Cells[ACol, ARow]);
end
else begin
grdSizeSet.Canvas.Brush.Color := grdSizeSet.Color;
grdSizeSet.Canvas.FillRect(Rect);
end;
end;
procedure TfrmDrawGridStaticGridSetup.bwWizardNextClick(Sender: TObject;
CurrPageIndex: Integer; var NewPageIndex: Integer;
var AllowChange: Boolean);
var
I: Integer;
begin
if FParam.StaticGrid.TitleCount = 0 then
begin
AllowChange := False;
ea.Dlg.MsgInfo('没有设置标题头。');
Exit;
end;
grdSizeSet.ColCount := FParam.StaticGrid.TitleCount + 1;
for I := 0 to FParam.StaticGrid.TitleCount - 1 do
begin
grdSizeSet.Cells[I + 1, 0] := FParam.StaticGrid.Titles[I].Text;
grdSizeSet.ColWidths[I + 1] := FParam.StaticGrid.Titles[I].Width;
end;
grdSizeSet.RowHeights[0] := FParam.StaticGrid.TitleHeight;
grdSizeSet.RowHeights[1] := FParam.StaticGrid.DataHeight;
if FParam.StaticGrid.ColWidthSet = ecwsScale then
rdoWidthScale.Checked := True
else
rdoWidthAbs.Checked := True;
case FParam.StaticGrid.DataFillMode of
edfmAutoHeight: rdoHeightAuto.Checked := True;
edfmFixHeight: rdoHeightFix.Checked := True;
else
rdoHeightDynamic.Checked := True;
end;
chkShowLine.Checked := FParam.StaticGrid.ShowLine;
chkShowTitle.Checked := FParam.StaticGrid.ShowTitle;
pnlTitleColor.Color := FParam.StaticGrid.TitleBackColor;
pnlLineColor.Color := FParam.StaticGrid.LineColor;
speTitleHeight.Value := FParam.StaticGrid.TitleHeight;
end;
procedure TfrmDrawGridStaticGridSetup.lbTitleListDrawItem(
Control: TWinControl; Index: Integer; Rect: TRect;
State: TOwnerDrawState);
begin
if odSelected in State then
begin
lbTitleList.Canvas.Font.Color := clWindow;
lbTitleList.Canvas.Brush.Color := clHighlight;
end
else begin
lbTitleList.Canvas.Font.Color := clWindowText;
lbTitleList.Canvas.Brush.Color := clWindow;
end;
lbTitleList.Canvas.FillRect(Rect);
ImgList.Draw(lbTitleList.Canvas, Rect.Left + 2, Rect.Top, cSTitleImg);
Rect.Left := Rect.Left + 20;
lbTitleList.Canvas.TextOut(Rect.Left, Rect.Top + 1, lbTitleList.Items[Index]);
end;
procedure TfrmDrawGridStaticGridSetup.rdoWidthScaleClick(Sender: TObject);
begin
FParam.StaticGrid.ColWidthSet := ecwsScale;
end;
procedure TfrmDrawGridStaticGridSetup.rdoWidthAbsClick(Sender: TObject);
begin
FParam.StaticGrid.ColWidthSet := ecwsAbs;
end;
procedure TfrmDrawGridStaticGridSetup.rdoHeightAutoClick(Sender: TObject);
begin
FParam.StaticGrid.DataFillMode := edfmAutoHeight;
end;
procedure TfrmDrawGridStaticGridSetup.rdoHeightFixClick(Sender: TObject);
begin
FParam.StaticGrid.DataFillMode := edfmFixHeight;
end;
procedure TfrmDrawGridStaticGridSetup.rdoHeightDynamicClick(
Sender: TObject);
begin
FParam.StaticGrid.DataFillMode := ecwsDynamic;
end;
procedure TfrmDrawGridStaticGridSetup.chkShowLineClick(Sender: TObject);
begin
FParam.StaticGrid.ShowLine := chkShowLine.Checked;
end;
procedure TfrmDrawGridStaticGridSetup.chkShowTitleClick(Sender: TObject);
begin
FParam.StaticGrid.ShowTitle := chkShowTitle.Checked;
end;
procedure TfrmDrawGridStaticGridSetup.bwWizardBackClick(Sender: TObject;
CurrPageIndex: Integer; var NewPageIndex: Integer;
var AllowChange: Boolean);
var
I: Integer;
begin
for I := 0 to FParam.StaticGrid.TitleCount - 1 do
FParam.StaticGrid.Titles[I].Width := grdSizeSet.ColWidths[I + 1];
FParam.StaticGrid.TitleHeight := grdSizeSet.RowHeights[0];
FParam.StaticGrid.DataHeight := grdSizeSet.RowHeights[1];
end;
procedure TfrmDrawGridStaticGridSetup.FormShow(Sender: TObject);
begin
lbTitleList.SetFocus;
end;
procedure TfrmDrawGridStaticGridSetup.pnlTitleColorClick(Sender: TObject);
begin
dlgColor.Color := pnlTitleColor.Color;
if dlgColor.Execute and (dlgColor.Color <> pnlTitleColor.Color) then
begin
pnlTitleColor.Color := dlgColor.Color;
FParam.StaticGrid.TitleBackColor := dlgColor.Color;
grdSizeSet.Invalidate;
end;
end;
procedure TfrmDrawGridStaticGridSetup.speTitleHeightChange(
Sender: TObject);
begin
grdSizeSet.RowHeights[0] := speTitleHeight.Value;
FParam.StaticGrid.TitleHeight := speTitleHeight.Value;
end;
procedure TfrmDrawGridStaticGridSetup.pnlLineColorClick(Sender: TObject);
begin
dlgColor.Color := pnlLineColor.Color;
if dlgColor.Execute and (dlgColor.Color <> pnlLineColor.Color) then
begin
pnlLineColor.Color := dlgColor.Color;
FParam.StaticGrid.LineColor := dlgColor.Color;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -