Raise Exception - Delphi XE3
12/02/2013
0
Estou acompanhando a Vídeo Aula do Guinther Pauli, porém estou utilizando o Windows 8 e o Delphi XE3
E tem uma parte no vídeo que tem o seguinte comando:
procedure TDM_Cadastro.CDSAlunosDesc_AlunoValidate(Sender: TField);
begin
if CDSAlunosDesc_Aluno.AsCurrency >
CDSAlunosMensalidade_Aluno.AsCurrency then
raise Exception.Create('O valor do desconto não pode ser maior que a mensalidade');
E o que acontece, quando executo o programa e coloco por exemplo a mensalidade R$ 200,00 e o valor do desconto de R$ 250,00 não aparece a mensagem de alerta, conforme aparece no código.
O executável do Delphi já está para executar como administrador e em modo de compatibilidade com o Windows 7
Se alguém puder ajudar agradeço.
David Sobral
Posts
12/02/2013
David Sobral
O valor do desconto não pode ser maior que a mensalidade, porém se o valor do desconto for acima de R$ 200,25 o programa não apresenta a mensagem.
O que pode estar ocorrendo?
13/02/2013
Joel Rodrigues
13/02/2013
David Sobral
Joel
Depurei mas não encontrei o que você pediu.
Segue abaixo o código do datamodule.
unit UDM;
interface
uses
System.SysUtils, System.Classes, Data.DB, Datasnap.DBClient;
type
TDMCadastros = class(TDataModule)
CDSAlunos: TClientDataSet;
CDSAlunosMatri_Aluno: TAutoIncField;
CDSAlunosNome_Aluno: TStringField;
CDSAlunosSexo_Aluno: TStringField;
CDSAlunosEnd_Aluno: TStringField;
CDSAlunosCep_Aluno: TStringField;
CDSAlunosCidade_Aluno: TStringField;
CDSAlunosUF_Aluno: TStringField;
CDSAlunosEst_Civil_Aluno: TStringField;
CDSAlunosMensalidade_Aluno: TCurrencyField;
CDSAlunosDesc_Aluno: TCurrencyField;
CDSAlunosAtivo_Aluno: TBooleanField;
CDSAlunosCod_Curso_Aluno: TIntegerField;
CDSAlunosObs_Aluno: TBlobField;
CDSAlunosFoto_Aluno: TBlobField;
procedure CDSAlunosDesc_AlunoValidate(Sender: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DMCadastros: TDMCadastros;
implementation
{%CLASSGROUP 'Vcl.Controls.TControl'}
{$R *.dfm}
procedure TDMCadastros.CDSAlunosDesc_AlunoValidate(Sender: TField);
begin
if CDSAlunosDesc_Aluno.AsCurrency > CDSAlunosMensalidade_Aluno.AsCurrency then
raise Exception.Create('Valor do desconto não pode ser maior que a mensalidade');
end;
end.
13/02/2013
Joel Rodrigues
13/02/2013
Joel Rodrigues
13/02/2013
David Sobral
E2156 Expression too complicated
E quando clico em Inspect aparece:
Error inspecting ' if CDSAlunosDesc_Aluno.AsCurrency > CDSAlunosMensalidade_Aluno.AsCurrency then
raise Exception.Create('O valor do desconto não pode ser maior que a mensalidade');': expression error
13/02/2013
Marco Salles
E2156 Expression too complicated
E quando clico em Inspect aparece:
Error inspecting ' if CDSAlunosDesc_Aluno.AsCurrency > CDSAlunosMensalidade_Aluno.AsCurrency then
raise Exception.Create('O valor do desconto não pode ser maior que a mensalidade');': expression error
Ueeee , mas acabou de aparecer o erro
Vc disse que
mas a tela dedebug mostra o contrário
Vc esta com as opçoes para mostrar as exceções configuradas ??
Execute pelo Executável e veja se o erro é aporesentado nestas condiçoes
[]sds
13/02/2013
David Sobral
Muito estranho, não estou entendendo mais nada
Estou pensando em instalar uma máquina virtual com windows xp e windows 7 para testar.
O que sugere que eu faça?
16/02/2013
David Sobral
Debugger Exception Notification
Project Project2.exe raised exception class Exception with message 'O valor do desconto não pode ser maior que a mensalidade'
Alguém poderia me auxiliar.
21/02/2013
David Sobral
Alguém poderia me ajuda?
21/02/2013
Lorival Filho
Eu não gosto muito de usar dessa maneira (como falei é gosto) eu prefiro realizar todas as tratativas de informação de campo no botão Salvar (por exemplo) ou se trabalhar com DATASNAP no método de salvar.
Hoje na minha aplicação principal (Delphi XE3, MSSQL, dbExpress e DATASNAP ) eu faço as validações no método de salvar retornando a mensagem da validação para o client e mostro em um MessageBox customizado.
Abs
25/02/2013
David Sobral
Clique aqui para fazer login e interagir na Comunidade :)