unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, JvMemoryDataset, Vcl.Grids,
  Vcl.DBGrids, JvExDBGrids, JvDBGrid;

type
  TForm1 = class(TForm)
    JvDBGrid1: TJvDBGrid;
    JvMemoryData1: TJvMemoryData;
    DataSource1: TDataSource;
    JvMemoryData1Column1: TStringField;
    JvMemoryData1Column2: TStringField;
    JvMemoryData1Column3: TStringField;
    JvMemoryData1Column4: TStringField;
    JvMemoryData1Column5: TStringField;
    JvMemoryData1Column6: TStringField;
    JvMemoryData1Column7: TStringField;
    JvMemoryData1Column8: TStringField;
    JvMemoryData1Column9: TStringField;
    JvMemoryData1Column10: TStringField;
    JvMemoryData1Column11: TStringField;
    JvMemoryData1Column12: TStringField;
    JvMemoryData1Column13: TStringField;
    JvMemoryData1Column14: TStringField;
    JvMemoryData1Column15: TStringField;
    JvMemoryData1Column16: TStringField;
    JvMemoryData1Column17: TStringField;
    JvMemoryData1Column18: TStringField;
    JvMemoryData1Column19: TStringField;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const
  cChU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  cChL = 'bcdfghklmnpqrstvwxz';
  cChV = 'aeijouy';
var
  lR, lC, lL: Integer;
begin
  //Fill random data
  JvMemoryData1.Open;
  for lR := 1 to 50 do
  begin
    JvMemoryData1.Append;
    for lC := 0 to JvMemoryData1.FieldCount - 1 do
    begin
      JvMemoryData1.Fields[lC].AsString := IntToStr(lC + 1) + ' - ' + cChU[Random(Length(cChU))+1];
      for lL := 1 to 3 + Random(12) do
        if lL mod 2 = 0 then
          JvMemoryData1.Fields[lC].AsString := JvMemoryData1.Fields[lC].AsString + cChL[Random(Length(cChL))+1]
        else
          JvMemoryData1.Fields[lC].AsString := JvMemoryData1.Fields[lC].AsString + cChV[Random(Length(cChv))+1];
    end;
    JvMemoryData1.Post;
  end;
  JvMemoryData1.First;
end;

end.
