ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Access violation (mensagem revisada)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
marcocunhasilva
Profissional
Profissional


Registrado: Segunda-Feira, 21 de Agosto de 2006
Mensagens: 740
Localização: Porto Alegre

MensagemEnviada: Ter Mai 15, 2007 2:40 pm    Assunto: Access violation (mensagem revisada) Responder com Citação

Olá, caros amigos delphianos do fórum.
Gostaria que vocês me ajudassem. Existe alguma forma genérica de se tratar erros de Access violation? A mensagem é esta:

"Access violation at address 004050D7 in module 'prBasico.exe'. Read of address 0001F9FC."

Gostaria de pedir desculpas pela minha falha, pois faltou o código da outra unit relacionada com esta que está abaixo. Logo em seguida, virá a outra unit. São duas: uFinContasAReceber e ufrmLogin.

Desde já agradeço a coperação de vocês e, mais uma vez, peço desculpas pelo meu engano, pois dificultaria a solução que vocês venham a dar.

Eis as units:

unit uFinContasAReceber;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uAncPersonal, Grids, DBGrids, ExtCtrls, ComCtrls, ImgList,
Menus, StdActns, ActnList, DBCtrls, ToolWin, DB, DBClient, StdCtrls, Mask,
ULocalizarCDS, uDMLocalizar, Buttons, ufrmLogin;

type
TfrmFinContasAReceber = class(TfrmAncPersonal)
PagesContasAReceber: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
sbContasAReceber: TScrollBox;
ToolBar5: TToolBar;
ToolButton53: TToolButton;
ToolButton54: TToolButton;
DBNavigator5: TDBNavigator;
ToolButton55: TToolButton;
ToolButton56: TToolButton;
ToolButton57: TToolButton;
ToolButton58: TToolButton;
ToolButton59: TToolButton;
ToolButton60: TToolButton;
ToolButton61: TToolButton;
ToolButton62: TToolButton;
ToolButton63: TToolButton;
ToolButton64: TToolButton;
ToolButton2: TToolButton;
btnAjusteTabelaPreco: TToolButton;
Splitter5: TSplitter;
DBGrid5: TDBGrid;
dtsContasAReceber: TDataSource;
cdsContasAReceber: TClientDataSet;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
DBNavigator1: TDBNavigator;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ScrollBox1: TScrollBox;
Splitter1: TSplitter;
DBGrid1: TDBGrid;
cdsContasAReceberNROCONTASARECEBER: TFMTBCDField;
cdsContasAReceberNROCONTASARECEBERSUPERIOR: TFMTBCDField;
cdsContasAReceberCODSETOR: TFMTBCDField;
cdsContasAReceberCODPESSOA: TFMTBCDField;
cdsContasAReceberCODPESSOACLIENTE: TFMTBCDField;
cdsContasAReceberDESDOBRAMENTO: TStringField;
cdsContasAReceberDATAEMISSAO: TDateField;
cdsContasAReceberVALORDUPLICATA: TFMTBCDField;
cdsContasAReceberDATAVENCIMENTO: TDateField;
cdsContasAReceberDATABAIXA: TDateField;
cdsContasAReceberVALORPAGO: TFMTBCDField;
cdsContasAReceberDATAREGISTROBAIXA: TDateField;
cdsContasAReceberHORAREGISTROBAIXA: TStringField;
cdsContasAReceberCODPESSOAUSUARIOBAIXA: TFMTBCDField;
cdsContasAReceberINDPROCESSOAUTOMATICO: TStringField;
cdsContasAReceberCODSITUACAOPAGAMENTO: TFMTBCDField;
cdsContasAReceberCODBANCO: TFMTBCDField;
cdsContasAReceberNROBLOQUETO: TStringField;
cdsContasAReceberNROPEDIDO: TFMTBCDField;
cdsContasAReceberCODFORMAPAGAMENTO: TFMTBCDField;
cdsContasAReceberDESCBANCO: TStringField;
grbDuplicata: TGroupBox;
Label7: TLabel;
edtDataEmissao: TDBEdit;
Label8: TLabel;
edtValorDuplicata: TDBEdit;
Label9: TLabel;
edtDataVencimento: TDBEdit;
Label10: TLabel;
edtDataBaixa: TDBEdit;
Label11: TLabel;
edtValorPago: TDBEdit;
grbPagamento: TGroupBox;
Label16: TLabel;
edtCodSituacaoPagto: TDBEdit;
edtSituacaoPagto: TEdit;
Label17: TLabel;
edtCodBanco: TDBEdit;
Label18: TLabel;
edtBanco: TDBEdit;
Label19: TLabel;
edtCodFormaPagto: TDBEdit;
edtFormaPagto: TEdit;
actLocSetor: TAction;
actLocPessoa: TAction;
dtsPessoas: TDataSource;
cdsPessoas: TClientDataSet;
cdsPessoasCODPESSOA: TFMTBCDField;
cdsPessoasCODPESSOAMATRIZ: TFMTBCDField;
cdsPessoasCODTIPOPESSOA: TStringField;
cdsPessoasNOME: TStringField;
cdsPessoasNOMEFANTASIA: TStringField;
cdsPessoasNOMESEMACENTO: TStringField;
cdsPessoasCNPJ_CPF: TStringField;
cdsPessoasCNPJ_CPF_MATRIZ: TStringField;
cdsPessoasINSCRICAOESTADUAL_RG: TStringField;
cdsPessoasINDISENCAOICMS: TStringField;
cdsPessoasREGISTROSUS: TStringField;
cdsPessoasVALIDADESUS: TDateField;
cdsPessoasCODBANCODOC: TFMTBCDField;
cdsPessoasCODBANCO: TFMTBCDField;
cdsPessoasCODAGENCIA: TStringField;
cdsPessoasCONTACORRENTE: TStringField;
cdsPessoasCODATIVIDADE: TFMTBCDField;
cdsPessoasCODSITUACAOPESSOA: TFMTBCDField;
cdsPessoasCODFORMAPAGAMENTO: TFMTBCDField;
cdsPessoasCODREGIAOVENDA: TFMTBCDField;
cdsPessoasCODSETOR: TFMTBCDField;
cdsPessoasCODPESSOASETOR: TFMTBCDField;
cdsPessoasLIMITECREDITO: TFMTBCDField;
cdsPessoasOBSERVACAONOTA: TStringField;
cdsPessoasCODTIPOPARCELAMENTO: TFMTBCDField;
cdsPessoasDESCATIVIDADE: TStringField;
cdsPessoasDESCSITUACAOPESSOA: TStringField;
cdsPessoasDESCTIPOPESSOA: TStringField;
cdsPessoasDESCREGIAOVENDA: TStringField;
cdsPessoasDESCFORMAPAGAMENTO: TStringField;
cdsPessoasCODVINCULOPESSOA: TFMTBCDField;
cdsPessoasPARCNRODIAS1: TFMTBCDField;
cdsPessoasPARCNRODIAS2: TFMTBCDField;
cdsPessoasPARCNRODIAS3: TFMTBCDField;
cdsPessoasPARCNRODIAS4: TFMTBCDField;
cdsPessoasPARCNRODIAS5: TFMTBCDField;
cdsPessoasPARCNRODIAS6: TFMTBCDField;
cdsPessoasNOMEVENDEDOR: TStringField;
cdsPessoasAJUSTEPRECOVENDEDOR: TFMTBCDField;
cdsPessoasqryObservacaoPessoa: TDataSetField;
cdsPessoasqryPessoaSetor: TDataSetField;
cdsPessoasqryPessoaVinculo: TDataSetField;
Label1: TLabel;
edtCodigo: TDBEdit;
Label3: TLabel;
edtCodSetor: TDBEdit;
edtSetor: TEdit;
btnLocSetor: TSpeedButton;
Label2: TLabel;
edtCodMatriz: TDBEdit;
Label4: TLabel;
edtCodPessoa: TDBEdit;
edtNome: TEdit;
btnLocPessoa: TSpeedButton;
Label5: TLabel;
edtCodPessoaCliente: TDBEdit;
Label12: TLabel;
edtDataRegistroBaixa: TDBEdit;
Label13: TLabel;
edtHoraRegistroBaixa: TDBEdit;
Label14: TLabel;
edtUsuarioBaixa: TDBEdit;
Label15: TLabel;
edtProcessoAutomatico: TDBEdit;
procedure ActionExcluirExecute(Sender: TObject);
procedure ActionIncluirExecute(Sender: TObject);
procedure ActionCancelamentoExecute(Sender: TObject);
procedure edtUsuarioBaixaEnter(Sender: TObject);
procedure edtHoraRegistroBaixaEnter(Sender: TObject);
procedure edtDataRegistroBaixaEnter(Sender: TObject);
procedure actLocPessoaExecute(Sender: TObject);
procedure actLocSetorExecute(Sender: TObject);
procedure FormCreate(Sender: TObject); override;
procedure GetdtsAtual(const Value: ShortInt; var DS: TDataSource); override;
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmFinContasAReceber: TfrmFinContasAReceber;

implementation

uses udmContasAReceber, udmComum;

{$R *.dfm}

procedure TfrmFinContasAReceber.ActionCancelamentoExecute(Sender: TObject);
begin
inherited;
edtSetor.Text := '';
edtNome.Text := '';
end;

procedure TfrmFinContasAReceber.ActionExcluirExecute(Sender: TObject);
begin
inherited;
edtSetor.Text := '';
edtNome.Text := '';
end;

procedure TfrmFinContasAReceber.ActionIncluirExecute(Sender: TObject);
begin
inherited;
edtSetor.Text := '';
edtNome.Text := '';
edtCodigo.SetFocus;
end;

procedure TfrmFinContasAReceber.actLocPessoaExecute(Sender: TObject);
begin
if not actLocPessoa.Enabled then Exit;

if TfrmLocalizarCDS.Execute('Localizar Setor',
dmLocalizar.cdsLocalizaPessoa,
'DESCRICAO',
'Descrição',
False) then
try
with Base.dtsAtual, DataSet do
begin
FieldByName('CodPessoa').Assign(dmLocalizar.cdsLocalizaPessoa.FieldByName('CODPESSOA'));
//FieldByName('Nome').Assign(dmLocalizar.cdsLocalizaPessoa.FieldByName('NOME'));
edtNome.Text := dmLocalizar.cdsLocalizaPessoa.FieldByName('NOME').AsString;
end;
finally
dmLocalizar.cdsLocalizaPessoa.Close;
SelectNext(Screen.ActiveControl,True,True);
end;

end;

procedure TfrmFinContasAReceber.actLocSetorExecute(Sender: TObject);
begin
if not actLocSetor.Enabled then Exit;

if TfrmLocalizarCDS.Execute('Localizar Setor',
dmLocalizar.cdsLocalizaSetor,
'DESCRICAO',
'Descrição',
False) then
try
with Base.dtsAtual, DataSet do
begin
FieldByName('CodSetor').Assign(dmLocalizar.cdsLocalizaSetor.FieldByName('CODSETOR'));
edtSetor.Text := dmLocalizar.cdsLocalizaSetor.FieldByName('DESCRICAO').AsString;
end;
finally
dmLocalizar.cdsLocalizaSetor.Close;
SelectNext(Screen.ActiveControl,True,True);
end;
end;

// Aqui ocorre o Access Violation
procedure TfrmFinContasAReceber.edtDataRegistroBaixaEnter(Sender: TObject);
begin
inherited;
edtDataRegistroBaixa.Text := frmLogin.Data;
end;

procedure TfrmFinContasAReceber.edtHoraRegistroBaixaEnter(Sender: TObject);
begin
inherited;
edtHoraRegistroBaixa.Text := frmLogin.Hora;
end;

procedure TfrmFinContasAReceber.edtUsuarioBaixaEnter(Sender: TObject);
begin
inherited;

with grbBaixa, frmLogin do
edtUsuarioBaixa.Text := frmLogin.CodUsuario;
end;

procedure TfrmFinContasAReceber.FormCreate(Sender: TObject);
begin
// Base.Identificacao := idCOntasAReceber;
{ Define o PageControl ativo }
Base.SetPaginas(PagesContasAReceber);
{ Define o DataSource atual }
Base.SetdtsAtual(dtsContasAReceber);
{faz a troca de aba após o salvamento}
ProxPagAoSalvar := True;

inherited;
end;

procedure TfrmFinContasAReceber.GetdtsAtual(const Value: ShortInt;
var DS: TDataSource);
begin
case Value of
0: DS := dtsContasAReceber;
// 1: DS := dtsPessoa;
// 1: DS := outracoisadeContasAReceber;
end;
end;

///////////////////////////////////////////////////////////////////////////

unit ufrmLogin;

interface

uses
Windows, Classes, Controls, Forms, StdCtrls, Buttons, ExtCtrls, SysUtils, Dialogs;

type
TfrmLogin = class(TForm)
btnOk: TBitBtn;
btnCancelar: TBitBtn;
edtUsuario: TLabeledEdit;
edtSenha: TLabeledEdit;
Bevel1: TBevel;
procedure btnOkClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
FCodUsuario: string;
FSenha: string;
FData: String;
FHora: String;

public
{ Public declarations }
property CodUsuario: string read FCodUsuario write FCodUsuario;
property Senha: string read FSenha write FSenha;
property Data: string read FData write FData;
property Hora: String read FHora write FHora;
end;

var
frmLogin: TfrmLogin;

resourcestring
sInformeUsuario = 'Informe o usuário';
sInformeSenha = 'Informe a senha';

implementation

{$R *.dfm}

{ TfrmLogin }

procedure TfrmLogin.btnOkClick(Sender: TObject);
begin
{Verifica se preencheu o campo Usuário}
if Trim(edtUsuario.Text) = '' then
begin
edtUsuario.SetFocus;
raise Exception.Create(sInformeUsuario);
end;
{Verifica se preencheu o campo Senha}
if Trim(edtSenha.Text) = '' then
begin
edtSenha.SetFocus;
raise Exception.Create(sInformeSenha);
end;
CodUsuario := edtUsuario.Text;
Senha := edtSenha.Text;

Data := DateToStr(Date);
Hora := TimeToStr(Now);

end;

procedure TfrmLogin.FormShow(Sender: TObject);
begin
edtUsuario.SetFocus;
edtUsuario.Clear;
edtSenha.Clear;
end;

end.

OBS: TODOS OS FORMULÁRIOS DO SISTEMA SÃO HERDADOS DE UM BÁSICO. SE PRECISAREM INFORMAÇÕES ACERCA DESSES FORMULÁRIOS PARA AJUDAR, ME INFORMEM.

Abraços

marcocunhasilva
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Ter Mai 15, 2007 7:50 pm    Assunto: Responder com Citação

esse erro qdo vc faz exatamente qual operacao no sistema ?
tvz tenha algum form (ou datamodule) que ainda nao foi criado e vc esta fazendo referencia a ele no codigo
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
edibertoalves
Experiente
Experiente


Registrado: Segunda-Feira, 15 de Agosto de 2005
Mensagens: 447
Localização: São Paulo - SP

MensagemEnviada: Ter Mai 15, 2007 8:16 pm    Assunto: Responder com Citação

Complementando o que o Joemil disse.
Esse erro acontece geralmente quando vc tenta acessar um objeto mas o mesmo não foi criado.
Posta qual linha está acontecendo o erro.

Abraços

Ediberto
_________________
Ediberto Alves

Blog: http://edibertoalves.com.br/blog
Twitter: http://twitter.com/edibertoalves

Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcocunhasilva
Profissional
Profissional


Registrado: Segunda-Feira, 21 de Agosto de 2006
Mensagens: 740
Localização: Porto Alegre

MensagemEnviada: Ter Mai 15, 2007 10:15 pm    Assunto: Access Violation Responder com Citação

O trecho de codigo eh este:

// Aqui ocorre o Access Violation
procedure TfrmFinContasAReceber.edtDataRegistroBaixaEnter(Sender: TObject);
begin
inherited;
edtDataRegistroBaixa.Text := frmLogin.Data;
end;

A parte "Data" no frmLogin esta definido como uma propriedade na parte public da unit ufrmLogin.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB