Comando abre Foto access Violation
Boa noite Pessoal estou com uma problema em minha form cadastro de Membros, estou usando o seguinte codigo
e esta me retornando o seguinte erro :
Quando eu dou um Break sou levado a esta linha da form
que quando eu comento ela o erro desaparece.
Bom pessoal nao preciso nem diser que sou novo em Delphi neh!! Aguardo a ajuda de vc´s.
Quero desde já expressar meu agradecimento a todos que vem contribuindo tanto com suas duvidas quanto com a solução das mesmas, o motivo de tal gratidao é que tenho obtido muitos resultados com base no que venho encontrando no forum.
Abraços !!!!
procedure TFrmCadMembros.Button4Click(Sender: TObject); begin if AbreFoto.Execute then // abre dialogo para seleção de foto begin Foto.Picture.LoadFromFile(AbreFoto.FileName); DM.TabMembro.Edit; // ativa modo edição da form DM.TabMembroFOTO.value:=AbreFoto.FileName; end else Foto.Picture.LoadFromFile(DM.TabMembroFoto.Value); end; procedure TFrmCadMembros.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin Foto.Picture.LoadFromFile(DM.TabMembroFoto.Value); // atualiza foto na navegação end; procedure TFrmCadMembros.FormCreate(Sender: TObject); begin //Foto.Picture.LoadFromFile(DM.TabMembroFoto.Value); Foto.Picture.LoadFromFile(DM.TabMembroFoto.Value); end;
e esta me retornando o seguinte erro :
Project Adonai.exe raised exception class EAccessViolation with message 'Access violation at address at 007511B8 in module Adonai.exe'. Read of address 000001D4'.
Quando eu dou um Break sou levado a esta linha da form
Foto.Picture.LoadFromFile(DM.TabMembroFoto.Value);
que quando eu comento ela o erro desaparece.
Bom pessoal nao preciso nem diser que sou novo em Delphi neh!! Aguardo a ajuda de vc´s.
Quero desde já expressar meu agradecimento a todos que vem contribuindo tanto com suas duvidas quanto com a solução das mesmas, o motivo de tal gratidao é que tenho obtido muitos resultados com base no que venho encontrando no forum.
Abraços !!!!
Janilto Oliveira
Curtidas 0
Melhor post
Robson Morais
05/06/2017
verifique o retorno que vc tem nesse codigo
veja se está trazendo o caminho da foto corretamente.
DM.TabMembroFoto.Value
veja se está trazendo o caminho da foto corretamente.
GOSTEI 1
Mais Respostas
Janilto Oliveira
05/06/2017
Voce esta se referindo ao caminho exato da foto que no caso é o que o componente OpenPictureDialog pega na instrução DM.TabMembroFOTO.value:=AbreFoto.FileName;
que no caso é o caminho : C:\\ProgramData\\Adonai_software\\Fotos\\XXXX.jpg
Eu nao tenho certeza de como verificar esse retorno mas segundo o que estou vendo esta correto sim.
Verifiquei tbm o campo da tabela TabMembro referente a imagem e o nome correto é FOTO mesmo.
Bo nao sei muito bem o que fazer mas este erro nao acontecia antes..
Aguardo noticias!! Obrigado
que no caso é o caminho : C:\\ProgramData\\Adonai_software\\Fotos\\XXXX.jpg
Eu nao tenho certeza de como verificar esse retorno mas segundo o que estou vendo esta correto sim.
Verifiquei tbm o campo da tabela TabMembro referente a imagem e o nome correto é FOTO mesmo.
Bo nao sei muito bem o que fazer mas este erro nao acontecia antes..
Aguardo noticias!! Obrigado
GOSTEI 0
Robson Morais
05/06/2017
o que vc pode fazer é jogar no
veja se vai dar o retorno certo e vai debugando....
DM.TabMembroFoto.Value tenta assim tbem DM.TabMembroFoto.asString
veja se vai dar o retorno certo e vai debugando....
GOSTEI 0
Gutierry Pereira
05/06/2017
Bom dia,
Que componente é esse de foto que esta utilizando ?
Possa ser que a proriedade Picture do componente ainda não tenha sido criada.
Para identificar que esta dando o problema coloque um teste antes dessa linha onde o erro ocorre:
Qualquer coisa estou a disposição,
Abraços
Que componente é esse de foto que esta utilizando ?
Possa ser que a proriedade Picture do componente ainda não tenha sido criada.
Para identificar que esta dando o problema coloque um teste antes dessa linha onde o erro ocorre:
if Assigned(DM) Then begin showMessage('DM não esta instanciado'); // Solução dar um create no DM exit; end; if Assigned(DM.TabMembroFoto) Then begin ShowMessage('TabMembroFoto não instanciado'); // Solução instanciar o TabMembroFoto ou efetuar um open na tabela exit; end; if Assigned(Foto.Picture) Then begin ShowMessage('Objeto da propriedade picture não foi instanciado'); // Solução , verificar como o componente instancia este objeto, em alguns casos isso é feito via bitmap exit; end;
Qualquer coisa estou a disposição,
Abraços
GOSTEI 1