Jump to content

Acess Violation ao tentar criar formulário no Delphi 10.3 Firemonkey, erro não ocorre quando executo pelo Delphi


Lucas Ferreira

Postagens Recomendadas

O erro não ocorre quando estou debugando pelo Delphi, utilizo uma VM com Windows 7 no delphi. quando tento utilizar ele pelo executavel no windows 10 ele da acess violation, ele nem entra no evento de OnCreate que criei para ele

Obs: Estou criando outros formulários e não ocorre nenhum erro com os mesmos, somente nesse específico, ele nem cai nesse exception que criei...

 

Acess Violation.png

Editado por Lucas Ferreira
Link to comment
Compartilhe em outros sites

 

5 horas atrás, Lucas Ferreira disse:

ele nem cai nesse exception que criei.

 

Observações:

  • a variável "F_CadPacoes" (eu acredito ser um "TForm") form do cadastro => eu penso que você não deveria usar está "VARIÁVEL" como o proprietário ("OWNER") do novo objeto que SERÁ criado, uma vez que:
    • Somente um "OBJETO" pode ser o proprietário de outro objeto!
    • Nunca uma "VARIÁVEL"

Sua opções "PODERIAM" ser:

  1. um objeto já criado e dentro do escopo (alcance) desta procedure
  2. a palavra-chave "NIL", para representar que o novo objeto não tem um proprietário, de fato!
  3. a palavra-chave "SELF", para representar que, "ELE", o próprio objeto, será seu proprietário!

Por fim, uma vez que o novo objeto possui um proprietário, então, "ELE" (o proprietário) deverá ser responsável pela deleção (eliminação dos dados na memória), deste novo objeto! Caso contrário, você terá, de fato, um vazamanento de memóira ("MEMORY LEAK"), ao findar da aplicação ou procedure!

 

Editado por backupnumberum
Link to comment
Compartilhe em outros sites

38 minutos atrás, zoiokiss disse:

estou tentando achar uma string em um exe

Se sua intenção é apenas "achar", e não inteagir com ela, você poderia usar quais ferramentas que possibilitam a edição de texto, por exemplo: Notepad++ é um excelente "ACHAR COISAS DENTRO DE OUTRAS COISAS".

Caso queira fazer isso no Delphi, você deverá "abrir" o arquivo EXE usando uma das classes TStream (TFileStream, TMemoryStream, etc... ) para depois, através da busca binária, por exemplo, usando o metódo "READ" destas classes, e ir "tateando" através dos bytes e comparando com o valor que você deseja encontrar!

Você pode fazer isso usando muitas formas diferentes, e, ainda usar algumas bibliotecas com funções prontas e otimizadas para tanto!

Editado por backupnumberum
Link to comment
Compartilhe em outros sites

2 minutos atrás, backupnumberum disse:

Observações:

  • a variável "F_CadPacoes" (eu acredito ser um "TForm") form do cadastro => eu penso que você não deveria usar está "VARIÁVEL" como o proprietário ("OWNER") do novo objeto que SERÁ criado, uma vez que:
    • Somente um "OBJETO" pode ser o proprietário de outro objeto!
    • Nunca uma "VARIÁVEL"

Sua opções "PODERIAM" ser:

  1. um objeto já criado e dentro do escopo (alcance) desta procedure
  2. a palavra-chave "NIL", para representar que o novo objeto não tem um proprietário, de fato!
  3. a palavra-chave "SELF", para representar que, "ELE", o próprio objeto, será seu proprietário!

Por fim, uma vez que o novo objeto possui um proprietário, então, "ELE" (o proprietário) deverá ser responsável pela deleção (eliminação dos dados na memória), deste novo objeto! Caso contrário, você terá, de fato, um vazamanento de memóira ("MEMORY LEAK"), ao findar da aplicação ou procedure!

 

obrigado pela dica, mas nao era esse o problema

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...