MaskEdit için tarih alanlarında aşağıdaki kodu kullanıyorum.
Ve yine MaskEdit için parasal alanlarda aşağıdaki kodu kullanıyorum.
//Uses DateUtils
procedure TForm1.MaskEdit1Change(Sender: TObject);
begin
if ((Sender as TMaskEdit).Text= ' . . ') or
((Sender as TMaskEdit).Text='') then
(Sender as TMaskEdit).EditMask := ''
else
(Sender as TMaskEdit).EditMask := '99.99.9999' ;
end;
procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8]) then
Key := #0;
end;
procedure TForm1.MaskEdit1Exit(Sender: TObject);
begin
if MaskEdit1.Text <> '' then
begin
if Not IsValidDate (StrToIntDef(Copy(MaskEdit1.Text,7,4) , 0),
StrToIntDef(Copy(MaskEdit1.Text,4,2) , 0),
StrToIntDef(Copy(MaskEdit1.Text,1,2) , 0)) then
begin
ShowMessage('Bir hata oluştu. Girilen tarih geçersiz.');
MaskEdit1.SetFocus ;
end ;
end ;
end;
Ve yine MaskEdit için parasal alanlarda aşağıdaki kodu kullanıyorum.
procedure TForm1.MaskEdit2Exit(Sender: TObject);
begin
try
if TMaskEdit(sender).Text = '' then
TMaskEdit(sender).Text := '0,00'
else
TMaskEdit(sender).Text := formatFloat('#0.00', strToFloatdef(TMaskEdit(sender).Text,0)) ;
except
ShowMessage('Alan için format uygun değil.');
TMaskEdit(sender).SetFocus ;
end;
end;
procedure TForm1.MaskEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', ',', #8]) then
Key := #0;
if (AnsiPos(',',TEdit(sender).Text) <> 0) and (key = ',') then
key := #0;
end;

