Retirei a maskara do campo e apos isso gerava o erro: "22 Anos' is 
not a valid integer value for field `idade'

Então alterei o campo idade do banco para receber texto. Desta forma 
conseguir resolver a questão da data. O problema agora seria deixar 
uma alternativa mais amigável para o usuário selecionar a data de 
nascimento: estava pensando em usar o DateTimePicker1 o campo atual 
e um DBedit, alguém saberia como usar este componente de forma que 
grave também no banco a data selecionada?

Agradeço!!

Segue o codigo, agora funcionando

procedure TfrmCadAluno.btnSalvarClick(Sender: TObject);
 var DataNasc: TDateTime;
begin
   //
   if EditNome.Text = '' then
     begin
     Application.MessageBox(PAnsiChar('Por Favor Informe o nome do 
Aluno!'),'Atenção',MB_OK+ MB_ICONINFORMATION);
     EditNome.SetFocus;
     exit;
     end;

   if EditDataNascimento.Text = '' then
     begin
     Application.MessageBox(PAnsiChar('Por Favor Informe a Data de 
Nascimento do Aluno!'),'Atenção',MB_OK+ MB_ICONINFORMATION);
     EditDataNascimento.SetFocus;
     exit;
     end;
     //
   try
     //EditIdade recebe a idade - EditDataNascimento - digita a data
     EditIdade.text := floattostr( int((date - strtodate
(EditDataNascimento.text)) / 365)) + ' Anos';
     QAluno.Post;
     btnNovo.Enabled:=True;
   except
     on e:exception do
      begin
      // caso ocorra algum erro mostra esta informação
      MessageDlg('Erro abrindo Banco de Dados - QAluno. 
Mensagem: '+e.Message, mtError,  [mbOk],0);
      exit;
     end;
     end;

end;


Responder a