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

📄 asgunit-tms.pas

📁 delphi的超级好用的表格控件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Asgunit;

interface

{$DEFINE USEROTATED}

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, Grids, AdvGrid, StdCtrls, Buttons, ExtCtrls,
  Menus, ClipBrd, asprev, asabout, asfind, ComCtrls, ImgList;

type
  TDemo = class(TForm)
    FontDialog1: TFontDialog;
    MainMenu1: TMainMenu;
    Loaddata1: TMenuItem;
    Loadfromfile1: TMenuItem;
    Savetofile1: TMenuItem;
    SavetoHTML1: TMenuItem;
    SavetoCSV1: TMenuItem;
    SaveasXLS1: TMenuItem;
    Clipboard1: TMenuItem;
    Print1: TMenuItem;
    Copytoclipboard2: TMenuItem;
    Pastefromclipboard2: TMenuItem;
    Copyselectiontoclipboard1: TMenuItem;
    Print2: TMenuItem;
    Printpreview1: TMenuItem;
    Setselection1: TMenuItem;
    Help1: TMenuItem;
    About1: TMenuItem;
    Pastefromclipboard1: TMenuItem;
    LoadfromCSV1: TMenuItem;
    LoadfromXLS1: TMenuItem;
    Hide1: TMenuItem;
    Column11: TMenuItem;
    Column21: TMenuItem;
    Column31: TMenuItem;
    Column41: TMenuItem;
    Search1: TMenuItem;
    Findfirst1: TMenuItem;
    Findnext1: TMenuItem;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    AdvStringGrid2: TAdvStringGrid;
    GroupBox2: TGroupBox;
    Label7: TLabel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Button8: TButton;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Button3: TButton;
    Button6: TButton;
    RadioGroup1: TRadioGroup;
    fixedsort: TCheckBox;
    multiline: TCheckBox;
    colro: TCheckBox;
    AdvStringGrid1: TAdvStringGrid;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    SavetoASCII1: TMenuItem;
    TabSheet3: TTabSheet;
    editgrid: TAdvStringGrid;
    Label6: TLabel;
    Column51: TMenuItem;
    Column61: TMenuItem;
    Column71: TMenuItem;
    ImageList1: TImageList;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Label8: TLabel;
    PrintDialog1: TPrintDialog;
    TabSheet4: TTabSheet;
    AdvStringGrid3: TAdvStringGrid;
    SavetoDOC1: TMenuItem;
    Button1: TButton;
    Button2: TButton;
    RadioGroup2: TRadioGroup;
    Exit1: TMenuItem;
    CheckBox7: TCheckBox;
    SavetoXML1: TMenuItem;
    colfix: TCheckBox;
    Memo1: TMemo;
    Printpreviewwithgraphics1: TMenuItem;
    Printwithgraphics1: TMenuItem;
    procedure Button3Click(Sender: TObject);
    procedure AdvStringGrid1GetAlignment(Sender: TObject; ARow,
      ACol: Longint; var AAlignment: TAlignment);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure AdvStringGrid1GetCellColor(Sender: TObject; ARow,
      ACol: Longint; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
    procedure FormCreate(Sender: TObject);
    procedure AdvStringGrid1GridHint(Sender: TObject; Arow, Acol: Longint;
      var hintstr: string);
    procedure Loadfromfile1Click(Sender: TObject);
    procedure Savetofile1Click(Sender: TObject);
    procedure SavetoHTML1Click(Sender: TObject);
    procedure SavetoCSV1Click(Sender: TObject);
    procedure AdvStringGrid1AutoInsertRow(Sender: TObject; ARow: Longint);
    procedure AdvStringGrid1AutoDeleteRow(Sender: TObject; aRow: Longint);
    procedure AdvStringGrid1ClickSort(Sender: TObject; aCol: Longint);
    procedure CopytoExcel1Click(Sender: TObject);
    procedure SaveasXLS1Click(Sender: TObject);
    procedure Copytoclipboard2Click(Sender: TObject);
    procedure Pastefromclipboard2Click(Sender: TObject);
    procedure Print2Click(Sender: TObject);
    procedure Printpreview1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure Setselection1Click(Sender: TObject);
    procedure fixedsortClick(Sender: TObject);
    procedure Copyselectiontoclipboard1Click(Sender: TObject);
    procedure Pastefromclipboard1Click(Sender: TObject);
    procedure LoadfromCSV1Click(Sender: TObject);
    procedure LoadfromXLS1Click(Sender: TObject);
    procedure AdvStringGrid1PrintPage(Sender: TObject; Canvas: TCanvas;
      pagenr, pagexsize, pageysize: Integer);
    procedure Column11Click(Sender: TObject);
    procedure Findfirst1Click(Sender: TObject);
    procedure Findnext1Click(Sender: TObject);
    procedure multilineClick(Sender: TObject);
    procedure AdvStringGrid1CanEditCell(Sender: TObject; Arow,
      Acol: Integer; var canedit: Boolean);
    procedure AdvStringGrid1CellValidate(Sender: TObject; Col,
      Row: Integer; var Value: String; var Valid: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure AdvStringGrid2GetAlignment(Sender: TObject; ARow,
      ACol: Integer; var AAlignment: TAlignment);
    procedure SavetoASCII1Click(Sender: TObject);
    procedure editgridGetEditorType(Sender: TObject; aCol, aRow: Integer;
      var aEditor: TEditorType);
    procedure editgridEllipsClick(Sender: TObject; aCol, aRow: Integer;
      var S: String);
    procedure AdvStringGrid1GetFormat(Sender: TObject; ACol: Integer;
      var AStyle: TSortStyle; var aPrefix, aPostfix: String);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure AdvStringGrid1PrintStart(Sender: TObject; NrOfPages: Integer;
      var FromPage, ToPage: Integer);
    procedure SavetoDOC1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioGroup2Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure SavetoXML1Click(Sender: TObject);
    procedure AdvStringGrid1IsFixedCell(Sender: TObject; Arow,
      Acol: Integer; var isfixed: Boolean);
    procedure colfixClick(Sender: TObject);
    procedure AdvStringGrid1CanSort(Sender: TObject; aCol: Integer;
      var dosort: Boolean);
    procedure Printpreviewwithgraphics1Click(Sender: TObject);
    procedure Printwithgraphics1Click(Sender: TObject);
  private
     bitmap1,bitmap2,bitmap3,bitmap4,bitmap5:tbitmap;
     icon1,icon2,icon3,icon4,icon5:ticon;
     procedure InitGraphicGrid;
     procedure SetPrintOptions;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Demo: TDemo;

implementation

{$R *.DFM}
{$R iehand.res}
{$R icons.res}     

procedure TDemo.Button3Click(Sender: TObject);
begin
 advstringgrid1.autosize:=true;
end;

procedure TDemo.AdvStringGrid1GetAlignment(Sender: TObject; ARow,
  ACol: Longint; var AAlignment: TAlignment);
begin
 if acol in [3,4] then aAlignment:=taRightJustify;
end;

procedure TDemo.Button6Click(Sender: TObject);
begin
 if radiogroup1.itemindex=0 then
   advstringgrid1.sortdirection:=sdAscending
 else
   advstringgrid1.sortdirection:=sdDescending;
 advstringgrid1.sortcolumn:=1;
 advstringgrid1.QSort;
end;

procedure TDemo.Button7Click(Sender: TObject);
var
 pagepreview:tpagepreview;
begin
 advstringgrid1.printsettings.titlelines.Assign(memo1.lines);

 if checkbox2.checked then
    advstringgrid1.printsettings.time:=ppTopLeft
 else
    advstringgrid1.printsettings.time:=ppNone;

 if checkbox2.checked then
    advstringgrid1.printsettings.date:=ppTopRight
 else
    advstringgrid1.printsettings.date:=ppNone;

 if checkbox3.checked then
    advstringgrid1.printsettings.pagenr:=ppBottomCenter
 else
    advstringgrid1.printsettings.pagenr:=ppNone;

 if checkbox4.checked then
    advstringgrid1.printsettings.borders:=pbSingle
 else
    advstringgrid1.printsettings.borders:=pbNoborder;

{
 advstringgrid1.print;
}

{
 advstringgrid1.printpreview(paintbox1.canvas);
}

 pagepreview:=tpagepreview.create(self,advstringgrid1);
 try
  pagepreview.showmodal;
 finally
  pagepreview.free;
 end;

end;

procedure TDemo.Button8Click(Sender: TObject);
begin
 fontdialog1.font:=advstringgrid1.printsettings.font;
 if fontdialog1.execute then
   advstringgrid1.printsettings.font:=fontdialog1.font;
end;

procedure TDemo.AdvStringGrid1GetCellColor(Sender: TObject; ARow,
  ACol: Longint; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
begin
 if (acol=1) and (arow>0) and (arow<advstringgrid1.rowcount-advstringgrid1.fixedfooters) and (not(gdSelected in AState) or (gdFocused in AState)) then
   begin
    abrush.color:=clYellow;
    afont.color:=clRed;
   end;
 if (arow=0) then
    begin
     afont.style:=[fsBold];
    end;
end;

procedure TDemo.InitGraphicGrid;
begin
  icon1:=ticon.create;
  icon1.handle:=loadicon(hinstance,'ICON_1');
  icon2:=ticon.create;
  icon2.handle:=loadicon(hinstance,'ICON_2');
  icon3:=ticon.create;
  icon3.handle:=loadicon(hinstance,'ICON_3');
  icon4:=ticon.create;
  icon4.handle:=loadicon(hinstance,'ICON_4');
  icon5:=ticon.create;
  icon5.handle:=loadicon(hinstance,'ICON_5');

  with advstringgrid2 do
   begin
    addicon(1,1,icon1,haCenter,vaAboveText);
    addicon(1,2,icon2,haCenter,vaAboveText);
    addicon(1,3,icon3,haCenter,vaAboveText);
    addicon(1,4,icon4,haCenter,vaAboveText);
    addicon(1,5,icon5,haCenter,vaAboveText);

    {$IFDEF USEROTATED}
    addrotated(1,0,90,'Icons');
    {$ENDIF}

    cells[1,1]:='cpu';
    cells[1,2]:='trashcan';
    cells[1,3]:='icon';
    cells[1,4]:='floppy';
    cells[1,5]:='audio';


    addimageidx(2,1,0,habeforetext,vaCenter);
    addimageidx(2,2,1,haBeforeText,vaCenter);
    addimageidx(2,3,2,haBeforeText,vaCenter);
    addimageidx(2,4,3,haBeforeText,vaCenter);
    addimageidx(2,5,4,haBeforeText,vaCenter);

    {$IFDEF USEROTATED}
    addrotated(2,0,90,'Imagelist');
    {$ENDIF}

    cells[2,1]:='mail';
    cells[2,2]:='note';
    cells[2,3]:='cancel';
    cells[2,4]:='home';
    cells[2,5]:='web';

    bitmap1:=tbitmap.create;
    bitmap1.handle:=loadbitmap(hinstance,'BITMAP_1');
    bitmap2:=tbitmap.create;
    bitmap2.handle:=loadbitmap(hinstance,'BITMAP_2');
    bitmap3:=tbitmap.create;
    bitmap3.handle:=loadbitmap(hinstance,'BITMAP_3');
    bitmap4:=tbitmap.create;
    bitmap4.handle:=loadbitmap(hinstance,'BITMAP_4');
    bitmap5:=tbitmap.create;
    bitmap5.handle:=loadbitmap(hinstance,'BITMAP_5');

    addbitmap(3,1,bitmap1,false,haright,vabottom);
    addbitmap(3,2,bitmap2,false,haright,vabottom);
    addbitmap(3,3,bitmap3,false,haright,vabottom);
    addbitmap(3,4,bitmap4,false,haright,vabottom);
    addbitmap(3,5,bitmap5,false,haright,vabottom);

    cells[3,1]:='';
    cells[3,2]:='';
    cells[3,3]:='';
    cells[3,4]:='';
    cells[3,5]:='';

    autonumbercol(0);

    {$IFDEF USEROTATED}
    addrotated(3,0,90,'Bitmaps');

    addrotated(4,0,90,'Text');

    addrotated(4,1,45,'One');

    addrotated(4,2,135,'Two');

    addrotated(4,3,225,'Three');

    addrotated(4,4,315,'Four');

    addrotated(4,5,180,'Five');

    addrotated(5,0,90,'Multi Image');

    addrotated(6,0,90,'Rich text');
    {$ENDIF}

    addmultiimage(5,1,0,haBeforeText,vaCenter);

    with CellImages [5,1] do
      begin
       Add(0);
       Add(1);
      end;

    addmultiimage(5,2,0,haBeforeText,vaCenter);

    with CellImages [5,2] do
      begin
       Add(2);
       Add(3);
       Add(4);
      end;

    addmultiimage(5,3,0,haBeforeText,vaCenter);

    with CellImages [5,3] do
      begin
       Add(0);
      end;

    addmultiimage(5,4,0,haBeforeText,vaCenter);

    with CellImages [5,4] do
      begin
       Add(1);
       Add(3);
       Add(4);
       Add(2);
      end;

    addmultiimage(5,5,0,haBeforeText,vaCenter);

    with CellImages [5,5] do
      begin
       Add(4);
       Add(1);
      end;

    richedit.text:='Rich text';
    richedit.selstart:=0;
    richedit.sellength:=4;
    richedit.selattributes.color:=clRed;
    richedit.selattributes.style:=[fsBold];
    richedit.selstart:=5;
    richedit.sellength:=4;
    richedit.selattributes.color:=clBlue;
    richedit.selattributes.style:=[fsItalic];
    richtocell(6,1,richedit);


    richedit.Clear;
    richedit.selattributes.style:=[];
    richedit.selattributes.color:=clBlack;

    richedit.text:='Superscript';

    richedit.selstart:=0;
    richedit.sellength:=5;
    richedit.selsuperscript;
    richedit.selattributes.color:=clBlue;

    richtocell(6,2,richedit);

    richedit.Clear;
    richedit.selattributes.style:=[];
    richedit.selattributes.color:=clBlack;

    richedit.text:='Subscript';
    richedit.selstart:=0;
    richedit.sellength:=3;
    richedit.selsubscript;
    richedit.selattributes.color:=clBlue;

    richtocell(6,3,richedit);

    richedit.Clear;
    richedit.selattributes.style:=[];
    richedit.selattributes.color:=clBlack;
    richedit.selnormal;

    richedit.text:='One'#13'Two'#13'Three';
    richedit.paragraph.Numbering := nsBullet;

    richtocell(6,4,richedit);

   end;
end;

procedure TDemo.FormCreate(Sender: TObject);
var
 stream:tresourcestream;
 i:integer;
begin
 advstringgrid1.Clear;
 advstringgrid1.loadfromfile('test.txt');
 advstringgrid3.loadfromfile('test.txt');

 advstringgrid1.SortColumn :=1;


 editgrid.Clear;
 editgrid.loadfromfile('test.txt');

 editgrid.ClearComboString;
 editgrid.AddComboString('BMW');
 editgrid.AddComboString('Mercedes Benz');
 editgrid.AddComboString('Audi');
 editgrid.AddComboString('Porsche');
 editgrid.AddComboString('Ferrari');
 editgrid.AddComboString('Opel');
 editgrid.AddComboString('Lamborghini');
 editgrid.Combobox.sorted:=true;

 InitgraphicGrid;

 for i:=1 to editgrid.rowcount-1 do
  begin
   editgrid.addcheckbox(5,i,false,false);
  end;

 editgrid.datetimepicker.calcolors.titlebackcolor:=clRed;
 editgrid.datetimepicker.calcolors.monthbackcolor:=clYellow;
 editgrid.spinedit.minvalue:=0;
 editgrid.spinedit.maxvalue:=100;
 editgrid.spinedit.increment:=2;

 with advstringgrid3 do
  begin
   fixedcols:=0;
   fixedcolwidth:=20;
   addnode(2,4);
   addnode(7,2);
   addnode(13,4);
  end;


end;

procedure TDemo.AdvStringGrid1GridHint(Sender: TObject; Arow,
  Acol: Longint; var hintstr: string);
begin
 case acol of
 1:hintstr:='Name of car company';
 2:hintstr:='Car model';
 3:hintstr:='# of cylinders';
 4:hintstr:='Year of introduction';
 5:hintstr:='Engine power';
 6:hintstr:='Price';
 7:hintstr:='Website';
 end;
end;

⌨️ 快捷键说明

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