Como impedir que um usuário não deixe de preencher um Campo?

Delphi

07/02/2006

:arrow: Eu sou um programador iniciante estou fazendo uns cursos mas ainda não aprendi o suficiente, e estou fazendo o meu 1º programa que utiliza Banco de Dados...

Criei o Banco de Dados em SQL Server e utilizei campos not null (que não permite nulos) e estou usando conecção ADO
O problema é que quando eu cadastro alguma informação, e não preencho os dados de algum campo ´not null´ o meu programa trava...
Tentei achar no forum alguem que já teve esse problema antes...
Mas acho que o problema é muito iniciante pra alguem ter duvida sobre isso... :roll:
Eu quero que o programa avise quais celulas precisam ser preenchidas com uma mensagem e mude a cor de fundo dessas celulas...
Gostaria também que o programa verificasse se as informações são válidas.... Ex: a quantidade de nº de um telefone ou alguma regra a ser obedecida...

Sou Grato desde já....


Jamesgran

Jamesgran

Curtidas 0

Respostas

Edilcimar

Edilcimar

07/02/2006

se estiver usando edit ou maskedit, no onshow do form coloque o setfocus para o primeiro campo desejado, no onexit dele faça o teste para ver se está preenchido, se não estiver dê uma mensagem e jogue o foco novamente no mesmo lugar, se o campo foi preenchido jogue o foco para o próximo componente, assim vc obriga o usuário a preencher todos, uma outra forma e verificar o valor de cada campo antes da gravação


GOSTEI 0
Spooner

Spooner

07/02/2006

Olá Colega,

Você pode fazer a verificação dos campos em branco antes de gravar os dados no Bd, exemplo no Seu botão de gravar coloque assim no OnClick

if (Edit.txt = ´´)  then
begin
  ShowMessage(´O campo X esta em branco´);
  abort;
end;



GOSTEI 0
Paullsoftware

Paullsoftware

07/02/2006

se for uma tabela use a propriedade Requerid do campo que resolve, quando o usuário for salvar os dados se um determinado campo estiver vazio ele pedirar para preencher e dirá que é obrigatório.

senão, use um evento para tratar os Edits e verificar se algum deles está vazio...

procedure ChecCampos;
var
i : Integer;
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is TCustomEdit then
if (Components[i] as TCustomEdit).Text = ´´ then
MessageDlg(´Todos os campos são obrigatórios´,mtWarning,[mbOK],0);
end;


GOSTEI 0
POSTAR