home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kompon / d56 / BKSGRID.ZIP / Demo / Unit1.pas < prev   
Pascal/Delphi Source File  |  2001-07-19  |  6KB  |  205 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   MyGrids, SortGrid, StdCtrls, Spin, Buttons;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     SortGrid: TSortGrid;
  12.     Button1: TButton;
  13.     GroupBox1: TGroupBox;
  14.     EdtCol: TSpinEdit;
  15.     Label1: TLabel;
  16.     Label2: TLabel;
  17.     EdtValue: TSpinEdit;
  18.     Button2: TButton;
  19.     Label3: TLabel;
  20.     Label4: TLabel;
  21.     Label5: TLabel;
  22.     Label6: TLabel;
  23.     Button3: TButton;
  24.     Label7: TLabel;
  25.     Label8: TLabel;
  26.     Label9: TLabel;
  27.     Label10: TLabel;
  28.     Label11: TLabel;
  29.     EdtSearch: TSpinEdit;
  30.     Button4: TButton;
  31.     btnedit: TSpeedButton;
  32.     Label12: TLabel;
  33.     Label13: TLabel;
  34.     Label14: TLabel;
  35.     procedure FormCreate(Sender: TObject);
  36.     procedure SortGridSetFilter(ARows: TStrings; var Accept: Boolean);
  37.     procedure Button2Click(Sender: TObject);
  38.     procedure SortGridRowSelected(Sender: TObject);
  39.     procedure Button1Click(Sender: TObject);
  40.     procedure Button3Click(Sender: TObject);
  41.     procedure SortGridGetCellFormat(Sender: TObject; Col, Row: Integer;
  42.       State: TGridDrawState; var FormatOptions: TFormatOptions;
  43.       var CheckBox, Combobox, Ellipsis: Boolean);
  44.     procedure SortGridSetEllipsis(Sender: TObject; ACol, ARow: Integer);
  45.     procedure SortGridGetComboBox(Sender: TObject; ACol, ARow: Integer;
  46.       var Strs: TStringList; var Width, Height: Integer;
  47.       var Sorted: Boolean);
  48.     procedure Button4Click(Sender: TObject);
  49.     procedure SortGridSearch(ARows: TStrings; var Accept: Boolean);
  50.     procedure SortGridCellValidate(Sender: TObject; ACol, ARow: Integer;
  51.       const OldValue: String; var NewValue: String; var Valid: Boolean);
  52.     procedure Button5Click(Sender: TObject);
  53.     procedure btneditClick(Sender: TObject);
  54.     procedure SortGridModified(Sender: TObject);
  55.   private
  56.     { Private declarations }
  57.   public
  58.     { Public declarations }
  59.   end;
  60.  
  61. var
  62.   Form1: TForm1;
  63.  
  64. implementation
  65.  
  66. {$R *.DFM}
  67.  
  68. procedure TForm1.FormCreate(Sender: TObject);
  69. var
  70.     iCol, iRow: integer;
  71. begin
  72.     randomize;
  73.     for iCol := 0 to 4 do
  74.         for iRow := 1 to 10 do
  75.             SortGrid.Cells[iCol,iRow] := IntToStr( Random(9) );
  76.     for iRow := 1 to 10 do
  77.         SortGrid.Cells[5,iRow] := IntToStr( Random(99999999) );
  78.     for iCol := 0 to 5 do
  79.         SortGrid.Cells[iCol,0] := 'Header' + IntToStr(iCol+1);
  80.  
  81.     sortgrid.Modified := false;
  82.     sortgrid.SortColumn(0);
  83.     sortgrid.Row := 1;    
  84. end;
  85.  
  86. procedure TForm1.SortGridSetFilter(ARows: TStrings; var Accept: Boolean);
  87. begin
  88.     Accept := StrToInt( ARows[EdtCol.Value] ) > EdtValue.Value; 
  89. end;
  90.  
  91. procedure TForm1.Button2Click(Sender: TObject);
  92. begin
  93.     sortgrid.filtered := not sortgrid.filtered; 
  94. end;
  95.  
  96. procedure TForm1.SortGridRowSelected(Sender: TObject);
  97. begin
  98.     Label3.Caption := inttostr( sortgrid.SelCount );
  99. end;
  100.  
  101. procedure TForm1.Button1Click(Sender: TObject);
  102. begin
  103.     sortgrid.SaveToFile('c:\sortgrid.dat', true);
  104. end;
  105.  
  106. procedure TForm1.Button3Click(Sender: TObject);
  107. begin
  108.     sortgrid.LoadFromFile('c:\sortgrid.dat', true);
  109. end;
  110.  
  111. procedure TForm1.SortGridGetCellFormat(Sender: TObject; Col, Row: Integer;
  112.   State: TGridDrawState; var FormatOptions: TFormatOptions; var CheckBox,
  113.   Combobox, Ellipsis: Boolean);
  114. begin
  115.   if Col=5 then
  116.   begin
  117.     if row=1 then formatoptions.AlignmentHorz := taRightJustify;
  118.     if row=1 then formatoptions.Font.color := clGreen;
  119.     if row=2 then formatoptions.AlignmentHorz := taCenter;
  120.     if row=2 then formatoptions.Font.color := clRed;
  121.     if row=3 then formatoptions.Font.style := [fsBold];
  122.     if row=4 then formatoptions.Brush.color := clBlue;
  123.     if row=4 then formatoptions.font.color := clwhite;
  124.     if row=5 then formatoptions.HideText := true;
  125.     if row=6 then formatoptions.Bevel.Style := cblowered;
  126.     if row=6 then formatoptions.Bevel.UpperLeftColor := clblue;
  127.     if row=6 then formatoptions.Bevel.LowerRightColor := clblue;
  128.     checkbox := row=7;
  129.     ellipsis := row=8;
  130.     combobox := row=9;
  131.   end;
  132. end;
  133.  
  134. procedure TForm1.SortGridSetEllipsis(Sender: TObject; ACol, ARow: Integer);
  135. begin
  136.     showmessage('clicked button');
  137. end;
  138.  
  139. procedure TForm1.SortGridGetComboBox(Sender: TObject; ACol, ARow: Integer;
  140.   var Strs: TStringList; var Width, Height: Integer; var Sorted: Boolean);
  141. begin
  142. strs.clear;
  143. strs.add('11111');
  144. strs.add('22222');
  145. strs.add('33333');
  146. strs.add('44444');
  147. strs.add('55555');
  148. end;
  149.  
  150. procedure TForm1.Button4Click(Sender: TObject);
  151. var
  152.     row: integer;
  153. begin
  154.     if sortgrid.FindFirst( row ) then
  155.         showmessage( 'found in row ' + inttostr(row) )
  156.     else
  157.         showmessage( 'did not find anything' );    
  158. end;
  159.  
  160. procedure TForm1.SortGridSearch(ARows: TStrings; var Accept: Boolean);
  161. begin
  162.     accept := arows.indexof( EdtSearch.text ) > -1;
  163. end;
  164.  
  165. procedure TForm1.SortGridCellValidate(Sender: TObject; ACol, ARow: Integer;
  166.   const OldValue: String; var NewValue: String; var Valid: Boolean);
  167. begin
  168.   if (acol=5) and (Arow=10) then
  169.     valid := pos('a', newvalue)=0;
  170. end;
  171.  
  172. procedure TForm1.Button5Click(Sender: TObject);
  173. begin
  174.     sortgrid.options := sortgrid.options 
  175. end;
  176.  
  177. procedure TForm1.btneditClick(Sender: TObject);
  178. begin
  179.   if btnedit.down then
  180.   begin
  181.       sortgrid.MultiSelect := false;
  182.       sortgrid.options := sortgrid.options - [gorowselect];
  183.       sortgrid.options := sortgrid.options - [gorangeselect];      
  184.       sortgrid.options := sortgrid.options + [goediting];
  185.       sortgrid.moveto(5,10);  
  186.   end
  187.   else
  188.   begin
  189.       sortgrid.MultiSelect := True;
  190.       sortgrid.options := sortgrid.options + [gorowselect];
  191.       sortgrid.options := sortgrid.options + [gorangeselect];
  192.       sortgrid.options := sortgrid.options - [goediting];
  193.   end;
  194. end;
  195.  
  196. procedure TForm1.SortGridModified(Sender: TObject);
  197. begin
  198.     if sortgrid.Modified then
  199.         Label14.caption := 'true'
  200.     else
  201.         Label14.caption := 'false';
  202. end;
  203.  
  204. end.
  205.