Como enviar mensagem para o usuário nesse caso?
Pessoal, fiz conforme dica de um amigo, mas está dando erro, alguém tem outra solução?
procedure TFrmCadTurDisc.VerificaChecks(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message = 514 then
if (((DmDados.IBQryAlunoTurmaTRANSFERIDO.AsString = 'True') or
(DmDados.IBQryAlunoTurmaDESISTENTE.AsString = 'True' ) or
(DmDados.IBQryAlunoTurmaFALECIDO.AsString = 'True' ) or
(DmDados.IBQryAlunoTurmaABANDONO.AsString = 'True' )) and
((DmDados.IBQryAlunoTurmaSAIU_1SEMESTRE.AsString = 'False') and
(DmDados.IBQryAlunoTurmaSAIU_1SEMESTRE.IsNull ) and
(DmDados.IBQryAlunoTurmaSAIU_2SEMESTRE.AsString = 'False') and
(DmDados.IBQryAlunoTurmaSAIU_2SEMESTRE.IsNull ))) then
if (msg.HWND <> CB_1Semestre.Handle) and (msg.HWND <> CB_2Semestre.Handle) then
begin
PcAluno2.ActivePageIndex := 2;
MessageBox(0, 'É necessário que o 1º Semestre ou 2º Semestre sejam habilitados, ou não foi clicado no botão salvar!' , 'Atenção', mb_Ok);
Msg.message := 0;
end;
end;
Osmar
Curtidas 0
Respostas
Osmar
17/02/2014
Pessoal, fiz conforme dica de um amigo, mas está dando erro, alguém tem outra solução? são 6 DBCheckbox:
1 TRANSFERIDO
2 DESISTENTE
3 FALECIDO
4 ABANDONO
Se o usuário selecionar qualquer um DBCheckbox acima, obrigatoriamente ele tem que selecionar o 5 ou 6 DBCheckbox
5 SAIU_1SEMESTRE
6 SAIU_2SEMESTRE
Veja como está o código:
1 TRANSFERIDO
2 DESISTENTE
3 FALECIDO
4 ABANDONO
Se o usuário selecionar qualquer um DBCheckbox acima, obrigatoriamente ele tem que selecionar o 5 ou 6 DBCheckbox
5 SAIU_1SEMESTRE
6 SAIU_2SEMESTRE
Veja como está o código:
procedure TFrmCadTurDisc.VerificaChecks(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message = 514 then
if (((DmDados.IBQryAlunoTurmaTRANSFERIDO.AsString = ''True'') or
(DmDados.IBQryAlunoTurmaDESISTENTE.AsString = ''True'' ) or
(DmDados.IBQryAlunoTurmaFALECIDO.AsString = ''True'' ) or
(DmDados.IBQryAlunoTurmaABANDONO.AsString = ''True'' )) and
((DmDados.IBQryAlunoTurmaSAIU_1SEMESTRE.AsString = ''False'') and
(DmDados.IBQryAlunoTurmaSAIU_1SEMESTRE.IsNull ) and
(DmDados.IBQryAlunoTurmaSAIU_2SEMESTRE.AsString = ''False'') and
(DmDados.IBQryAlunoTurmaSAIU_2SEMESTRE.IsNull ))) then
if (msg.HWND <> CB_1Semestre.Handle) and (msg.HWND <> CB_2Semestre.Handle) then
begin
PcAluno2.ActivePageIndex := 2;
MessageBox(0, ''É necessário que o 1º Semestre ou 2º Semestre sejam habilitados, ou não foi clicado no botão salvar!'' , ''Atenção'', mb_Ok);
Msg.message := 0;
end;
end;
GOSTEI 0
Alan Souza
17/02/2014
((DmDados.IBQryAlunoTurmaSAIU_1SEMESTRE.AsString = ''False'') and
(DmDados.IBQryAlunoTurmaSAIU_1SEMESTRE.IsNull ) and
(DmDados.IBQryAlunoTurmaSAIU_2SEMESTRE.AsString = ''False'') and
(DmDados.IBQryAlunoTurmaSAIU_2SEMESTRE.IsNull ))
a condição (string = 'False') AND (IsNull) vai ser sempre falsa.
GOSTEI 0
Osmar
17/02/2014
no banco tanto tem False como IsNull, mas se o usuário selecionar o 5 ou 6 DBCheckbox aí recebe True, não sei se entendi o que você quis dizer.
GOSTEI 0
Alan Souza
17/02/2014
se é nulo não tem conteúdo no campo, então quando você faz o IsNull AND campo.asstring = 'TRUE', essa condição vai sempre retornar Falso, então nunca passará no código que vc colocou dentro do if...
GOSTEI 0
Nelson Santos
17/02/2014
Desenvolva softwares 3D em Delphi 7
www.3dsistemas.com.br
www.3dsistemas.com.br
GOSTEI 0