TField için Validator

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
ismailkocacan
Üye
Mesajlar: 88
Kayıt: 25 Eyl 2011 06:11
Konum: İstanbul
İletişim:

TField için Validator

Mesaj gönderen ismailkocacan »

Dataset’teki Verinin, kaydedilmeden önce( TBL_UserBeforePost) doğrulanması için, TField class’ına Eklenti olarak yazdığım fonksiyonlardır.

Kod: Tümünü seç

//ismail Kocacan
unit uValidation;

interface
uses

   SysUtils, Variants, Classes, DB,RegularExpressions;

type
  TFieldValidatorHelper=class Helper for TField
  public
      function IsMailFormat:Boolean;
      function IsIPFormat:Boolean;
      function IsURLFormat:Boolean;

  end;

implementation

{ TFieldValidatorHelper }
function TFieldValidatorHelper.IsIPFormat: Boolean;
begin
  Result:=TRegEx.Create('(([0-9]){1,3}.){1,3}[0-9]{1,3}').IsMatch(Trim(Text));
end;

function TFieldValidatorHelper.IsMailFormat: Boolean;
begin
  Result:=TRegEx.Create('^([\w\.-]{1,64}@[\w\.-]{1,252}\.\w{2,4})$').IsMatch(Trim(Text));
end;

function TFieldValidatorHelper.IsURLFormat: Boolean;
begin
  Result:=TRegEx.Create('^(https?)://[^\s/$.?#].[^\s]*$').IsMatch(Trim(Text));
end;
end.
uValidation unit’ini projenize dahil edittikden sonra;
TQuery nesnesinin BeforePost event’inde aşağıdaki gibi bir doğrulama yapabilirsiniz.

Kod: Tümünü seç

unit uMain;
.
.
.

implementation

 uses uValidation;

procedure TfrmMain.TBL_UserBeforePost(DataSet: TDataSet);
begin
  if not DataSet.FieldByName('EMAIL').IsMailFormat then
   begin
     raise Exception.Create('Geçersiz Mail Formatı');
     Abort;
   end;

  if not DataSet.FieldByName('IP').IsIPFormat then
   begin
     raise Exception.Create('Geçersiz IP Formatı');
         Abort;
      end;
end;
İyi Çalışmalar
Cevapla