Mais de 1 Condição Delphi
Olá bom dia a todos!
Estou com um simples probleminha, tenho um formulário de cadastro de cidade projetado no Delphi, aonde quero verificar quando o usuário for gravar as informações inseridas do formulário no banco de dados, se os respectivos campos estão vazios, para isso criei as condições.
Codigo:
procedure TFrmCadasCidade.SpeedButtonGravarClick(Sender: TObject);
begin
if Trim(DBEditDescCidade.Text) = ' ' then
begin
MessageBox(Handle,' Campo descrição cidade não pode ser vazio! Por favor proceda a correção.','Sistema Unilite',MB_OK or MB_ICONEXCLAMATION);
DBEditDescCidade.SetFocus;
if Trim(DBEditIbge.Text) = ' ' then
begin
MessageBox(Handle,' Campo IBGE não pode ser vazio! Por favor proceda a correção.','Sistema Unilite',MB_OK or MB_ICONEXCLAMATION);
if Trim(DBComboBox1.Text) = ' ' then
begin
MessageBox(Handle,' Campo UF não pode ser vazio! Por favor proceda a correção.','Sistema Unilite',MB_OK or MB_ICONEXCLAMATION);
end
end
end
else
begin
FDQryCidade.Post;
UnitDataModule.DMUnilite.FDUniLite.Commit;
SpeedButtonEditar.Enabled := true;
SpeedButtonNovo.Enabled := true;
SbPesquisa.Visible := true;
DBEditDescCidade.SetFocus;
DBEditDescCidade.ReadOnly := true;
DBEditCep.ReadOnly := true;
DBEditIbge.ReadOnly := true;
DBComboBox1.ReadOnly := true;
MessageBox(Handle,'Cidade cadastrada com sucessso!','Sistema Unilite',MB_OK or MB_ICONINFORMATION);
end;
end;
O problema é quando, os respectivos campos da primeira é ultima condição são preenchidos a aplicação permita que o usuário salva.
Sou iniciante da plataforma Delphi, e sei que errei em algum ponto do código. Se poderem me ajudar agradeço.
Obs:
Modo de conexão do projeto com o banco: Firefac
Estou com um simples probleminha, tenho um formulário de cadastro de cidade projetado no Delphi, aonde quero verificar quando o usuário for gravar as informações inseridas do formulário no banco de dados, se os respectivos campos estão vazios, para isso criei as condições.
Codigo:
procedure TFrmCadasCidade.SpeedButtonGravarClick(Sender: TObject);
begin
if Trim(DBEditDescCidade.Text) = ' ' then
begin
MessageBox(Handle,' Campo descrição cidade não pode ser vazio! Por favor proceda a correção.','Sistema Unilite',MB_OK or MB_ICONEXCLAMATION);
DBEditDescCidade.SetFocus;
if Trim(DBEditIbge.Text) = ' ' then
begin
MessageBox(Handle,' Campo IBGE não pode ser vazio! Por favor proceda a correção.','Sistema Unilite',MB_OK or MB_ICONEXCLAMATION);
if Trim(DBComboBox1.Text) = ' ' then
begin
MessageBox(Handle,' Campo UF não pode ser vazio! Por favor proceda a correção.','Sistema Unilite',MB_OK or MB_ICONEXCLAMATION);
end
end
end
else
begin
FDQryCidade.Post;
UnitDataModule.DMUnilite.FDUniLite.Commit;
SpeedButtonEditar.Enabled := true;
SpeedButtonNovo.Enabled := true;
SbPesquisa.Visible := true;
DBEditDescCidade.SetFocus;
DBEditDescCidade.ReadOnly := true;
DBEditCep.ReadOnly := true;
DBEditIbge.ReadOnly := true;
DBComboBox1.ReadOnly := true;
MessageBox(Handle,'Cidade cadastrada com sucessso!','Sistema Unilite',MB_OK or MB_ICONINFORMATION);
end;
end;
O problema é quando, os respectivos campos da primeira é ultima condição são preenchidos a aplicação permita que o usuário salva.
Sou iniciante da plataforma Delphi, e sei que errei em algum ponto do código. Se poderem me ajudar agradeço.
Obs:
Modo de conexão do projeto com o banco: Firefac
Jefferson
Curtidas 0
Respostas
Emerson Nascimento
21/09/2020
tente algo assim:
procedure TFrmCadasCidade.SpeedButtonGravarClick(Sender: TObject); const KENTER = #13#10; var strMsg: string; nCpo: integer; function iif(condition: boolean; iftrue, iffalse:variant): variant; begin if condition then result := iftrue else result := iffalse; end; begin strMsg := EmptyStr; nCpo := 0; if (Trim(DBEditDescCidade.Text) = EmptyStr) or (Trim(DBComboBox1.Text) = EmptyStr) then begin if Trim(DBEditDescCidade.Text) = EmptyStr then begin strMsg := strMsg + iif(strMsg='','',KENTER) + '- Campo descrição cidade não pode ser vazio!'; if nCpo = 0 then nCpo := 1; end; if Trim(DBEditIbge.Text) = EmptyStr then begin strMsg := strMsg + iif(strMsg='','',KENTER) + '- Campo IBGE não pode ser vazio!'; if nCpo = 0 then nCpo := 2; end; if Trim(DBComboBox1.Text) = EmptyStr then begin strMsg := strMsg + iif(strMsg='','',KENTER) + '- Campo UF não pode ser vazio!'; if nCpo = 0 then nCpo := 3; end; if strMsg <> EmptyStr then begin MessageBox(Handle,pCHAR(strMsg + KENTER + KENTER + 'Por favor proceda a correção.'),'Sistema Unilite',MB_OK or MB_ICONEXCLAMATION); case nCpo of 1: DBEditDescCidade.SetFocus; 2: DBEditIBGE.SetFocus; 3: DBComboBox1.SetFocus; end; end; end else begin FDQryCidade.Post; UnitDataModule.DMUnilite.FDUniLite.Commit; SpeedButtonEditar.Enabled := true; SpeedButtonNovo.Enabled := true; SbPesquisa.Visible := true; DBEditDescCidade.SetFocus; DBEditDescCidade.ReadOnly := true; DBEditCep.ReadOnly := true; DBEditIbge.ReadOnly := true; DBComboBox1.ReadOnly := true; MessageBox(Handle,'Cidade cadastrada com sucessso!','Sistema Unilite',MB_OK or MB_ICONINFORMATION); end; end;
GOSTEI 0
Jefferson
21/09/2020
Boa noite! Muito obrigado, foi de muita ajuda. Desde que comecei a programar na plataforma Delphi, a plataforma DevMidia foi a mais quem me ajudou.
Como sou iniciante, quero tentar entender. No caso você criou uma função e depois a chamou adicionado a um show messenger, cada vez que ela é usada nos respectivos campo.
Como sou iniciante, quero tentar entender. No caso você criou uma função e depois a chamou adicionado a um show messenger, cada vez que ela é usada nos respectivos campo.
GOSTEI 0