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

📄 designgrid.pas

📁 delphi制作表格的控件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    if TBFontTop.Down then a := AAlign + srTop
    else if TBFontVCa.Down then a := AAlign + srVCenter
    else if TBFontBo.Down then a := AAlign + srBottom;
  end;
  NewAlignMode := FGrid.CellAlignMode;
  case a  of
    5 : NewAlignMode := taTopLeft;
    9 : NewAlignMode := taLeft;
    13 : NewAlignMode := taBottomLeft;
    6  : NewAlignMode := taTop;
    10 : NewAlignMode := taCenter;
    14 : NewAlignMode := taBottom;
     7 : NewAlignMode := taTopRight;
    11 : NewAlignMode := taRight;
    15 : NewAlignMode := taBottomRight;
  end;
  CellRange := TRect(FGrid.Selection);
  FGrid.SetRangeProperty(CellRange, pnAlignMode, Pointer(NewAlignMode));
end;

procedure  TDesignGridForm.SetBandN(AType: Byte; ABoolean: Boolean);
begin
end;

procedure TDesignGridForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  AssignGrid(CurGrid);
  //CurGrid := Grid;
  { try
     FGrid.Align:=CurAlign;
     FGrid.RunMode:=rmLinkDataSet;
   finally
   end;}
end;

procedure TDesignGridForm.FormCreate(Sender: TObject);
begin
  EdCellVal.Align := alClient;
  //NewGrid;
  CBFontName.Items.Assign(Screen.Fonts);
  FGrid.RunMode := rmDesignMode;
end;

procedure TDesignGridForm.FormShow(Sender: TObject);
begin
  {try
    CurAlign := FGrid.Align;
    FGrid.Align := alClient;
    FGrid.RunMode := rmDesignMode;
  finally
  end;}
end;

procedure TDesignGridForm.FANewExecute(Sender: TObject);
var Rect: TRect;
    i: Integer;
begin
  //NewGrid;
  //GetBandStype;
end;

procedure TDesignGridForm.FAOpenExecute(Sender: TObject);
begin
  {FAOpen.Enabled := Grid <> nil;
  if OpenDialog1.Execute then
  begin
    SRFile := OpenDialog1.FileName;
    EasyGrid.LoadFromFile(SRFile);
    GetBandStype;
    NewFile := False;
    Caption := srFormCaption + '-' + SRFile;
  end;}
end;

procedure TDesignGridForm.FASaveExecute(Sender: TObject);
begin
   with SaveDialog1 do
   if Execute then
   begin
     FGrid.SaveToFile(FileName);
   end;
  {if (NewFile) or (SRFile = '') then
  begin
    if SaveDialog1.Execute then
    begin
      SRFile := SaveDialog1.FileName;
      EasyGrid.SaveToFile(SRFile);
      Caption := srFormCaption + '-' + SRFile;
    end;
    NewFile := False;
  end else EasyGrid.SaveToFile(SRFile);}
end;

procedure TDesignGridForm.FASaveAsExecute(Sender: TObject);
begin
  {if SaveDialog1.Execute then
  begin
    SRFile := SaveDialog1.FileName;
    EasyGrid.SaveToFile(SRFile);
  end;
  Caption := srFormCaption + '-' + SRFile;}
end;


procedure TDesignGridForm.TBFontLeftClick(Sender: TObject);
begin
  SetAlignMode(TToolButton(Sender).Tag);
  SetControlState(FGrid.Col, FGrid.Row);
end;

procedure TDesignGridForm.CBFontNameChange(Sender: TObject);
begin
  CellRange := TRect(FGrid.Selection);
  with CBFontName do
    if (ItemIndex >= 0) then
      FGrid.SetRangeProperty(CellRange, pnFontName, Pointer(Items[ItemIndex]));
end;

procedure TDesignGridForm.CBFontSizeChange(Sender: TObject);
begin
  CellRange := TRect(FGrid.Selection);
  if CBFontSize.Text <> '' then
    FGrid.SetRangeProperty(CellRange, pnFontSize, Pointer(StrToInt(CBFontSize.Text)));
end;

procedure TDesignGridForm.TBFontBClick(Sender: TObject);
var i, j: Integer;
  bDown: Boolean;
begin
  //TBFontB.Down := not TBFontB.Down;
  bDown := TBFontB.Tag > 0;
  TBFontB.Tag := - TBFontB.Tag;
  CellRange := TRect(FGrid.Selection);
  for i:=CellRange.Left to CellRange.Right do
    for j:=CellRange.Top to CellRange.Bottom do
       if bDown then
         FGrid.Cells[i ,j].FontStyle := FGrid.Cells[i ,j].FontStyle + [fsBold]
      else
        FGrid.Cells[i ,j].FontStyle := FGrid.Cells[i ,j].FontStyle - [fsBold];
  SetControlState(FGrid.Col, FGrid.Row);
  //FRGrid.SetRangeProperty(CellRange, pnFontStyle, @[fsBold]);
end;

procedure TDesignGridForm.TBFontIClick(Sender: TObject);
var i, j: Integer;
  bDown: Boolean;
begin
  //TBFontB.Down := not TBFontB.Down;
  bDown := TBFontI.Tag > 0;
  TBFontI.Tag := - TBFontI.Tag;
 // TBFontI.Down := not TBFontI.Down;
  CellRange := TRect(FGrid.Selection);
  for i:=CellRange.Left to CellRange.Right do
    for j:=CellRange.Top to CellRange.Bottom do
       if bDown then
         FGrid.Cells[i ,j].FontStyle := FGrid.Cells[i ,j].FontStyle + [fsItalic]
      else
        FGrid.Cells[i ,j].FontStyle := FGrid.Cells[i ,j].FontStyle - [fsItalic];
 // EasyGrid.SetRangeProperty(CellRange, pnFontStyle, @[fsItalic]);
  SetControlState(FGrid.Col, FGrid.Row);
end;

procedure TDesignGridForm.TBFontUClick(Sender: TObject);
var i, j: Integer;
  bDown: Boolean;
begin
  //TBFontB.Down := not TBFontB.Down;
  bDown := TBFontU.Tag > 0;
  TBFontU.Tag := - TBFontU.Tag;
  //TBFontU.Down := not TBFontU.Down;
  CellRange := TRect(FGrid.Selection);
  for i:=CellRange.Left to CellRange.Right do
    for j:=CellRange.Top to CellRange.Bottom do
       if bDown then
         FGrid.Cells[i ,j].FontStyle := FGrid.Cells[i ,j].FontStyle + [fsUnderLine]
      else
        FGrid.Cells[i ,j].FontStyle := FGrid.Cells[i ,j].FontStyle - [fsUnderLine];
  SetControlState(FGrid.Col, FGrid.Row);
end;

procedure TDesignGridForm.FAPageSetupExecute(Sender: TObject);
begin
  FGrid.PageSetup;
end;

procedure TDesignGridForm.FAPreViewExecute(Sender: TObject);
begin
  FGrid.Preview;
end;

procedure TDesignGridForm.FAPrintExecute(Sender: TObject);
begin
  FGrid.Print;
end;

procedure TDesignGridForm.FACloseExecute(Sender: TObject);
begin
  Close;
end;

procedure TDesignGridForm.FACopyExecute(Sender: TObject);
begin
  FGrid.copyCells(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.FACutExecute(Sender: TObject);
begin
  FGrid.CutCells(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.FAPasteExecute(Sender: TObject);
var
  Current: TPoint;
begin
  Current.X := FGrid.Col;
  Current.Y := FGrid.Row;
  FGrid.PasteCells(Current);
end;

procedure TDesignGridForm.FACellNullExecute(Sender: TObject);
begin
  FGrid.ClearCells(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.FAmargeExecute(Sender: TObject);
begin
  CellRange := TRect(FGrid.Selection);
  FGrid.SetMerges(CellRange, True);
end;

procedure TDesignGridForm.FAMargeDelExecute(Sender: TObject);
begin
  CellRange := TRect(FGrid.Selection);
  FGrid.DeleteMerges(CellRange);
end;

procedure TDesignGridForm.FACellProExecute(Sender: TObject);
begin
  FGrid.SetCellProp(-1);
end;

procedure TDesignGridForm.TBCellLineLeftClick(Sender: TObject);
var i: Integer;
begin
  //TToolButton(Sender).Tag := -TToolButton(Sender).Tag;
  CellRange := TRect(FGrid.Selection);
  FGrid.SetRangeProperty(CellRange, pnDrawLeft, Pointer(TBCellLineLeft.Down));
  FGrid.SetRangeProperty(CellRange, pnDrawTop, Pointer(TBCellLineTop.Down));
  FGrid.SetRangeProperty(CellRange, pnDrawRight, Pointer(TBCellLineRight.Down));
  FGrid.SetRangeProperty(CellRange, pnDrawBottom, Pointer(TBCellLineBo.Down));
  SetControlState(FGrid.Col, FGrid.Row);
end;

procedure TDesignGridForm.CBCellLineWidthChange(Sender: TObject);
begin
  CellRange := TRect(FGrid.Selection);
  if CBCellLineWidth.Text <> '' then
    FGrid.SetRangeProperty(CellRange, pnLineWidth, Pointer(StrToInt(CBCellLineWidth.Text)));
end;

procedure TDesignGridForm.FAInColExecute(Sender: TObject);
begin
  FGrid.InsertCol(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.FADelRowExecute(Sender: TObject);
begin
  FGrid.DeleteRow(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.FADelColExecute(Sender: TObject);
begin
  FGrid.DeleteCol(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.FAInRowExecute(Sender: TObject);
begin
  FGrid.InsertRow(TRect(FGrid.Selection));
end;

procedure TDesignGridForm.TBFontColorChange(Sender: TObject);
var
  C: TColor;
begin
  //C := TBFontColor.Colors.Color;
  //EasyGrid.SetRangeProperty(TRect(EasyGrid.Selection), pnFontColor, Pointer(C));
end;

procedure TDesignGridForm.FAInDataExecute(Sender: TObject);
begin
  //TGridReport(GridReport).GetDataField;
end;

procedure TDesignGridForm.FAInsertBmpExecute(Sender: TObject);
begin
  //if OpenPictureDialog1.Execute then
  //begin
  //  EasyGrid.InsertBmp(EasyGrid.Cells[EasyGrid.Col, EasyGrid.Row], OpenPictureDialog1.FileName);
  //end;
end;

procedure TDesignGridForm.TBDeleteBmpClick(Sender: TObject);
begin
  //EasyGrid.DeleteSRObject(EasyGrid.Cells[EasyGrid.Col, EasyGrid.Row]);
end;

procedure TDesignGridForm.FAInsertRftTextExecute(Sender: TObject);
begin
  //SRRtfEdit(EasyGrid);
 // SRRtfEdit(EasyGrid.GetRtfText(EasyGrid.Cells[EasyGrid.Col, AGrid.Row]));
end;

procedure TDesignGridForm.TBCellColorClick(Sender: TObject);
begin
  //EasyGrid.SetRangeProperty(TRect(EasyGrid.Selection), pnColor, Pointer(TBCellColor.Colors.Color));
end;

procedure TDesignGridForm.N3Click(Sender: TObject);
begin
  //SRHeadFootEdit(TSRGrid(EasyGrid));
end;

procedure TDesignGridForm.TBLUpDown1Click(Sender: TObject);
begin
  //CellRange := TRect(EasyGrid.Selection);
  //if TBLUpDown1.Down then
  //  EasyGrid.SetRangeProperty(CellRange, pnBiasLine, Pointer(blLUpDown1))
  //else
  //   EasyGrid.SetRangeProperty(CellRange, pnBiasLine, Pointer(blNone));
  //TBLUpDown1.Down := not TBLUpDown1.Down;
  //SetControlState(EasyGrid.Col, EasyGrid.Row);
end;

procedure TDesignGridForm.TBRUpDown1Click(Sender: TObject);
begin
  //CellRange := TRect(EasyGrid.Selection);
 // if TBRUpDown1.Down then
  //  EasyGrid.SetRangeProperty(CellRange, pnBiasLine, Pointer(blRUpDown1))
 // else
 //    EasyGrid.SetRangeProperty(CellRange, pnBiasLine, Pointer(blNone));
 // TBRUpDown1.Down := not TBRUpDown1.Down;
 // SetControlState(EasyGrid.Col, EasyGrid.Row);
end;

procedure TDesignGridForm.TBCellLineCasingClick(Sender: TObject);
//var NewRimLine: TRimLine;
begin
  //TToolButton(Sender).Tag := -TToolButton(Sender).Tag;
  {CellRange := TRect(EasyGrid.Selection);
  NewRimLine := [rlLeft, rlTop, rlRight, rlBottom];
  EasyGrid.SetRangeProperty(CellRange, pnRimLine, @NewRimLine);
  SetControlState(EasyGrid.Col, EasyGrid.Row);}
end;

procedure TDesignGridForm.TBCellLineNullClick(Sender: TObject);
//var NewRimLine: TRimLine;
begin
 { CellRange := TRect(EasyGrid.Selection);
  NewRimLine := [];
  EasyGrid.SetRangeProperty(CellRange, pnRimLine, @NewRimLine);
  SetControlState(EasyGrid.Col, EasyGrid.Row); }
end;

procedure TDesignGridForm.NGridStyleClick(Sender: TObject);
//var
 // GS: TSRGridStyleForm;
begin
 // GS := TSRGridStyleForm.Create(Application);
 // try
 //   GS.Grid := EasyGrid;
 //   GS.SetGridStyle;
 // finally
     // Free;
     // SRDataFieldForm := nil;
 // end;
end;

end.

⌨️ 快捷键说明

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