unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;
      var Value: string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 with StringGrid1 do
   begin
     Cells[0,0]:='Lp';
     Colwidths[0]:=20;
     Cells[1,0]:='Imię';
     Colwidths[1]:=40;
     Cells[2,0]:='Nazwisko';
     Colwidths[2]:=60;
     Cells[3,0]:='Numer telefonu';
     Colwidths[3]:=80;
   end;
end;

procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;
  var Value: string);
begin
   if StringGrid1.Cells[ACol, 0] = 'Lp' then
    Value :=  '99;1'; //cyfra 9 w masce oznacza, że można wprowadzić tylko cyfrę

   if StringGrid1.Cells[ACol, 0] = 'Imię' then
    Value :=  'llllll';  // litera l w masce oznacza możliwość wprowadzenia tylko
                         // litery, przy czym liter może być mniej niż znaków l
   if StringGrid1.Cells[ACol, 0] = 'Nazwisko' then
    Value :=  'llllllll';

   if StringGrid1.Cells[ACol, 0] = 'Numer telefonu' then
    Value :=  '!\(999\)000-00-00;1';
end;

end.
