uGridForm.pas

<< Click to Display Table of Contents >>

Navigation:  Demos > 15 > Delphi > jQGrid >

uGridForm.pas

unit uGridForm;

 

interface

 

uses

 Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, Controls,

 IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWjQGrid,

 IWCompButton, IWCompText, IWCompLabel, IWCompMemo;

 

type

 TGridForm = class(TIWAppForm)

 IWjQGrid1: TIWjQGrid;

 IWButton1: TIWButton;

 IWLabel1: TIWLabel;

 IWText1: TIWText;

 IWButton4: TIWButton;

 IWButton5: TIWButton;

 IWMemo1: TIWMemo;

 IWButton2: TIWButton;

 procedure IWjQGrid1GetCellText(Sender: TObject; const Row, Col: Integer;

 var CellText: string);

 procedure IWButton1AsyncClick(Sender: TObject; EventParams: TStringList);

 procedure IWAppFormCreate(Sender: TObject);

 procedure IWAppFormDestroy(Sender: TObject);

 procedure IWButton4AsyncClick(Sender: TObject; EventParams: TStringList);

 procedure IWButton5AsyncClick(Sender: TObject; EventParams: TStringList);

 procedure IWjQGrid1SaveCell(Sender: TObject; const RowID: string;

 ACol: Integer; const AColName: string; var AValue: string;

 var ASave: Boolean; var AErrorMessage: string);

 procedure IWjQGrid1AsyncSelectRow(Sender: TObject; EventParams: TStringList;

 const RowID: string);

 private

 FFirstNames,

 FLastNames: TStringList;

 public

 end;

 

implementation

 

{$R *.dfm}

 

var

 GridData: array[0..10 - 1, 0..10 - 1] of string;

 

procedure TGridForm.IWAppFormCreate(Sender: TObject);

begin

 FLastNames := TStringList.Create;

 with FLastNames do

 begin

 Add('Smith');

 Add('Green');

 Add('Jones');

 Add('Wagner');

 Add('Black');

 Add('Donner');

 Add('Bush');

 Add('Arnold');

 Add('Avery');

 Add('Bailey');

 Add('Baker');

 Add('Ball');

 Add('Bell');

 Add('Berry');

 Add('Black');

 Add('Blake');

 Add('Bond');

 Add('Bower');

 Add('Brown');

 Add('Buckland');

 Add('Burgess');

 Add('Butler');

 Add('Cameron');

 Add('Campbell');

 Add('Carr');

 Add('Chapman');

 Add('Churchill');

 Add('Clark');

 Add('Clarkson');

 Add('James');

 Add('Johnston');

 Add('Jones');

 Add('Kelly');

 Add('Kerr');

 Add('King');

 Add('Knox');

 Add('Lambert');

 Add('Langdon');

 Add('Lawrence');

 Add('Lee');

 Add('Lewis');

 Add('Lyman');

 end;

 FFirstNames := TStringList.Create;

 with FFirstNames do

 begin

 Add('Abigail');

 Add('Alexandra');

 Add('Alison');

 Add('Amanda');

 Add('Amelia');

 Add('Amy');

 Add('Andrea');

 Add('Angela');

 Add('Anna');

 Add('Anne');

 Add('Audrey');

 Add('Ava');

 Add('Bella');

 Add('Bernadette');

 Add('Carol');

 Add('Caroline');

 Add('Carolyn');

 Add('Chloe');

 Add('Claire');

 Add('Deirdre');

 Add('Diana');

 Add('Diane');

 Add('Donna');

 Add('Dorothy');

 Add('Elizabeth');

 Add('Ella');

 Add('Emily');

 Add('Emma');

 Add('Faith');

 Add('Felicity');

 Add('Fiona');

 Add('Gabrielle');

 Add('Grace');

 Add('Hannah');

 Add('Heather');

 Add('Irene');

 Add('Jan');

 Add('Jane');

 Add('Jasmine');

 Add('Jennifer');

 Add('Jessica');

 Add('Joan');

 Add('Joanne');

 Add('Julia');

 Add('Karen');

 Add('Katherine');

 Add('Kimberly');

 Add('Kylie');

 Add('Lauren');

 Add('Leah');

 Add('Lillian');

 Add('Lily');

 Add('Lisa');

 Add('Madeleine');

 Add('Maria');

 Add('Mary');

 Add('Megan');

 Add('Melanie');

 Add('Michelle');

 Add('Molly');

 Add('Natalie');

 Add('Nicola');

 Add('Olivia');

 Add('Penelope');

 Add('Pippa');

 Add('Rachel');

 Add('Rebecca');

 Add('Rose');

 Add('Ruth');

 Add('Sally');

 Add('Samantha');

 Add('Sarah');

 Add('Sonia');

 Add('Sophie');

 Add('Stephanie');

 Add('Sue');

 Add('Theresa');

 Add('Tracey');

 Add('Una');

 Add('Vanessa');

 Add('Victoria');

 Add('Virginia');

 Add('Wanda');

 Add('Wendy');

 Add('Yvonne');

 Add('Adam');

 Add('Adrian');

 Add('Alan');

 Add('Alexander');

 Add('Andrew');

 Add('Anthony');

 Add('Austin');

 Add('Benjamin');

 Add('Blake');

 Add('Boris');

 Add('Brandon');

 Add('Brian');

 Add('Cameron');

 Add('Carl');

 Add('Charles');

 Add('Christian');

 Add('Christopher');

 Add('Colin');

 Add('Connor');

 Add('Dan');

 Add('David');

 Add('Dominic');

 Add('Dylan');

 Add('Edward');

 Add('Eric');

 Add('Evan');

 Add('Frank');

 Add('Gavin');

 Add('Gordon');

 Add('Harry');

 Add('Ian');

 Add('Isaac');

 Add('Jack');

 Add('Jacob');

 Add('Jake');

 Add('James');

 Add('Jason');

 Add('Joe');

 Add('John');

 Add('Jonathan');

 Add('Joseph');

 Add('Joshua');

 Add('Julian');

 Add('Justin');

 Add('Keith');

 Add('Kevin');

 Add('Leonard');

 Add('Liam');

 Add('Lucas');

 Add('Luke');

 Add('Matt');

 Add('Max');

 Add('Michael');

 Add('Nathan');

 Add('Neil');

 Add('Nicholas');

 Add('Oliver');

 Add('Owen');

 Add('Paul');

 Add('Peter');

 Add('Phil');

 Add('Piers');

 Add('Richard');

 Add('Robert');

 Add('Ryan');

 Add('Sam');

 Add('Sean');

 Add('Sebastian');

 Add('Simon');

 Add('Stephen');

 Add('Steven');

 Add('Stewart');

 Add('Thomas');

 Add('Tim');

 Add('Trevor');

 Add('Victor');

 Add('Warren');

 Add('William');

 end;

 IWjQGrid1.RowCount := 1000;

end;

 

procedure TGridForm.IWAppFormDestroy(Sender: TObject);

begin

 FLastNames.Free;

 FFirstNames.Free;

end;

 

procedure TGridForm.IWButton1AsyncClick(Sender: TObject;

 EventParams: TStringList);

begin

 Release;

end;

 

procedure TGridForm.IWButton4AsyncClick(Sender: TObject;

 EventParams: TStringList);

begin

 IWjQGrid1.DataStr := ''; // clear previous existing data so it will generate new

 IWjQGrid1.RefreshData;

end;

 

procedure TGridForm.IWButton5AsyncClick(Sender: TObject;

 EventParams: TStringList);

begin

 IWjQGrid1.ClearGridData;

end;

 

function iif(ACondition: boolean; ATrue, AFalse: string): string;

begin

 if ACondition then

 Result := ATrue

 else

 Result := AFalse;

end;

 

procedure TGridForm.IWjQGrid1GetCellText(Sender: TObject; const Row,

 Col: Integer; var CellText: string);

var

 LAmount: Double;

begin

 CellText := Format('Cell [%d,%d]', [Row, Col]);

 case Col of

 0: CellText := FFirstNames[Random(FFirstNames.Count)] + ' ' + FLastNames[Random(FLastNames.Count)];

 1: CellText := IntToStr(Random(12) + 1) + '/' + IntToStr(Random(29) + 1) + '/' + IntToStr(Random(3) + 1999);

 2: begin

 LAmount := Random * 200;

 if Random(4) = 0 then

 begin

 LAmount := -LAmount;

 end;

 CellText := Format('%s$%f', [iif(LAmount < 0, '-', ''), Abs(LAmount)]);

 end;

 end;

end;

 

procedure TGridForm.IWjQGrid1SaveCell(Sender: TObject; const RowID: string;

 ACol: Integer; const AColName: string; var AValue: string; var ASave: Boolean;

 var AErrorMessage: string);

begin

 ASave := False;

 AErrorMessage := 'Read only';

end;

 

procedure TGridForm.IWjQGrid1AsyncSelectRow(Sender: TObject;

 EventParams: TStringList; const RowID: string);

begin

 IWMemo1.Lines.Add('Selected Row: ' + RowID);

 //IWMemo1.ScrollToBottom;

end;

 

end.