Comando abre Foto access Violation

05/06/2017

0

Boa noite Pessoal estou com uma problema em minha form cadastro de Membros, estou usando o seguinte codigo
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

Janilto Oliveira

Responder

Post mais votado

05/06/2017

verifique o retorno que vc tem nesse codigo
DM.TabMembroFoto.Value

veja se está trazendo o caminho da foto corretamente.

Robson Morais

Robson Morais
Responder

Mais Posts

05/06/2017

Janilto Oliveira

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
Responder

06/06/2017

Robson Morais

o que vc pode fazer é jogar no
DM.TabMembroFoto.Value

tenta assim tbem

DM.TabMembroFoto.asString


veja se vai dar o retorno certo e vai debugando....
Responder

07/06/2017

Gutierry Pereira

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:
   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
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar