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
Wrap
Pascal/Delphi Source File
|
2001-07-19
|
6KB
|
205 lines
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
MyGrids, SortGrid, StdCtrls, Spin, Buttons;
type
TForm1 = class(TForm)
SortGrid: TSortGrid;
Button1: TButton;
GroupBox1: TGroupBox;
EdtCol: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
EdtValue: TSpinEdit;
Button2: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button3: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
EdtSearch: TSpinEdit;
Button4: TButton;
btnedit: TSpeedButton;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
procedure FormCreate(Sender: TObject);
procedure SortGridSetFilter(ARows: TStrings; var Accept: Boolean);
procedure Button2Click(Sender: TObject);
procedure SortGridRowSelected(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure SortGridGetCellFormat(Sender: TObject; Col, Row: Integer;
State: TGridDrawState; var FormatOptions: TFormatOptions;
var CheckBox, Combobox, Ellipsis: Boolean);
procedure SortGridSetEllipsis(Sender: TObject; ACol, ARow: Integer);
procedure SortGridGetComboBox(Sender: TObject; ACol, ARow: Integer;
var Strs: TStringList; var Width, Height: Integer;
var Sorted: Boolean);
procedure Button4Click(Sender: TObject);
procedure SortGridSearch(ARows: TStrings; var Accept: Boolean);
procedure SortGridCellValidate(Sender: TObject; ACol, ARow: Integer;
const OldValue: String; var NewValue: String; var Valid: Boolean);
procedure Button5Click(Sender: TObject);
procedure btneditClick(Sender: TObject);
procedure SortGridModified(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
iCol, iRow: integer;
begin
randomize;
for iCol := 0 to 4 do
for iRow := 1 to 10 do
SortGrid.Cells[iCol,iRow] := IntToStr( Random(9) );
for iRow := 1 to 10 do
SortGrid.Cells[5,iRow] := IntToStr( Random(99999999) );
for iCol := 0 to 5 do
SortGrid.Cells[iCol,0] := 'Header' + IntToStr(iCol+1);
sortgrid.Modified := false;
sortgrid.SortColumn(0);
sortgrid.Row := 1;
end;
procedure TForm1.SortGridSetFilter(ARows: TStrings; var Accept: Boolean);
begin
Accept := StrToInt( ARows[EdtCol.Value] ) > EdtValue.Value;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
sortgrid.filtered := not sortgrid.filtered;
end;
procedure TForm1.SortGridRowSelected(Sender: TObject);
begin
Label3.Caption := inttostr( sortgrid.SelCount );
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
sortgrid.SaveToFile('c:\sortgrid.dat', true);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
sortgrid.LoadFromFile('c:\sortgrid.dat', true);
end;
procedure TForm1.SortGridGetCellFormat(Sender: TObject; Col, Row: Integer;
State: TGridDrawState; var FormatOptions: TFormatOptions; var CheckBox,
Combobox, Ellipsis: Boolean);
begin
if Col=5 then
begin
if row=1 then formatoptions.AlignmentHorz := taRightJustify;
if row=1 then formatoptions.Font.color := clGreen;
if row=2 then formatoptions.AlignmentHorz := taCenter;
if row=2 then formatoptions.Font.color := clRed;
if row=3 then formatoptions.Font.style := [fsBold];
if row=4 then formatoptions.Brush.color := clBlue;
if row=4 then formatoptions.font.color := clwhite;
if row=5 then formatoptions.HideText := true;
if row=6 then formatoptions.Bevel.Style := cblowered;
if row=6 then formatoptions.Bevel.UpperLeftColor := clblue;
if row=6 then formatoptions.Bevel.LowerRightColor := clblue;
checkbox := row=7;
ellipsis := row=8;
combobox := row=9;
end;
end;
procedure TForm1.SortGridSetEllipsis(Sender: TObject; ACol, ARow: Integer);
begin
showmessage('clicked button');
end;
procedure TForm1.SortGridGetComboBox(Sender: TObject; ACol, ARow: Integer;
var Strs: TStringList; var Width, Height: Integer; var Sorted: Boolean);
begin
strs.clear;
strs.add('11111');
strs.add('22222');
strs.add('33333');
strs.add('44444');
strs.add('55555');
end;
procedure TForm1.Button4Click(Sender: TObject);
var
row: integer;
begin
if sortgrid.FindFirst( row ) then
showmessage( 'found in row ' + inttostr(row) )
else
showmessage( 'did not find anything' );
end;
procedure TForm1.SortGridSearch(ARows: TStrings; var Accept: Boolean);
begin
accept := arows.indexof( EdtSearch.text ) > -1;
end;
procedure TForm1.SortGridCellValidate(Sender: TObject; ACol, ARow: Integer;
const OldValue: String; var NewValue: String; var Valid: Boolean);
begin
if (acol=5) and (Arow=10) then
valid := pos('a', newvalue)=0;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
sortgrid.options := sortgrid.options
end;
procedure TForm1.btneditClick(Sender: TObject);
begin
if btnedit.down then
begin
sortgrid.MultiSelect := false;
sortgrid.options := sortgrid.options - [gorowselect];
sortgrid.options := sortgrid.options - [gorangeselect];
sortgrid.options := sortgrid.options + [goediting];
sortgrid.moveto(5,10);
end
else
begin
sortgrid.MultiSelect := True;
sortgrid.options := sortgrid.options + [gorowselect];
sortgrid.options := sortgrid.options + [gorangeselect];
sortgrid.options := sortgrid.options - [goediting];
end;
end;
procedure TForm1.SortGridModified(Sender: TObject);
begin
if sortgrid.Modified then
Label14.caption := 'true'
else
Label14.caption := 'false';
end;
end.