Estou dando uma olhada em uma telinha que temos aqui e percebi um bug, o processo normal dessa tela deveria ser, ao digitar um produto de tipo X adiciona 2 novos TSay na tela com informações(o que esta ocorrendo perfeitamente bem) porem ao digitar algum produto de tipo Y eu estou dando um "FreeObj" nesses TSays esperando que eles sumam da tela, porem como podem ver no anexo isso nao acontece! Ja até dei um Refresh no MSDIALOG ao qual esses TSays pertencem, mas nada acontece. Sabem dizer qual o jeito correto de fazer isso?
Obs. Após o FreeObj as variaveis perdem realmente a instanciação, tanto que o VALTYPE nelas deixa de retornar "O" e retorna "U".
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Bom dia Patrick,
O FreeObj deveria realmente efetuar a limpeza da instância do objeto, recomendo você abrir uma issue para a equipe responsável pelos binários do Prothues, esse problema pode estar tanto no lado do client quanto do server, porém alerto que esse é um procedimento perigoso, pois o owner desse objeto pode tentar acessá-lo após a limpeza de instância, gerando um erro de variável não é objeto ou até mesmo de access violation direto no binário.
Por enquanto, recomendo você não efetuar a limpeza do objeto, apenas remover o seu conteúdo ou escondê-lo (método hide) que terá o mesmo efeito visual ao usuário.
Se eu dou Hide não para de dar erro de “variável não é objeto”. Vou deixar do jeito que tava mesmo e já abri a issue. Afinal nem foi os usuários que reclamaram, frescura minha mesmo.
Tente apenas limpar o conteúdo do TSay então, deixando ele vazio (“”).
Descobri o erro! Obrigado de novo Daniel!
O problema estava em outro lugar, a Função funciona realmente, eu que estava errando na criação das variáveis que receberiam as instanciações! Eu estava criando elas como Locais dentro de uma função filha. Isto causava essa interação esquisita! Declarei as duas variáveis na função principal como Private e funcionou normal.