Quando eu destruo o form, as grids param de funcionar!

Delphi

12/10/2004

Olá a todos!

Estou com um problema estranho aqui. Ao meu ver esta tudo certo mas não da certo. Olha o que eu fiz:

Criei um form de cadastro de produtos chamado FrmCadProduto. Nesse form tem 3 grids que listam conteudos de outras tabelas. No evento onActivate eu abro as 6 tabelas usadas no form e no evento onClose eu fecho as mesmas 6.
No form principal, existe um procedimento de chamada do FrmCadProduto assim:

Application.createform(TFrmCadProduto, FrmCadProduto);
FrmCadProduto.Showmodal;
FrmCadProduto.release;
FrmCadProduto:=nil;

Quando eu executo minha aplicação e abro o formulario pela primeira vez, tudo funciona perfeitamente. Quando eu fecho o formulario e abro novamente, o sistema cria o form novamente e quando ele abre, nenhum dos 3 grids exibem os dados.

Eu ja tentei instanciar o form pra ver se resolvia e nada! Mudei a ordem de abertura e fechamento das tabelas varias vezes e nada! Troquei o release por um free e nada. A unica coisa que resolvel foi não destruir o form mas obviamente isso ira calsar peso pelo espaço na memoria.

Alguem sugere algo? Eu fiz algo de errado?

Urgente!

Obrigado a todos.

Ronaldo


Maxadens

Maxadens

Curtidas 0

Respostas

Maxadens

Maxadens

12/10/2004

Estou usando banco interbase e minha tabela é um ClientDataSet da paleta dbExpress.

Ronaldo


GOSTEI 0
Marco Salles

Marco Salles

12/10/2004

so um palpite sem muitas pretensões, ja que eu estou ha oito meses parado de programação..Pq que voce nao tenta abrir estas tabelas no evento OnShow do FrmCadProduto , ao inves de usar o evento OnActive do mesmo...Qualquer coisa nova poste para nos :P


GOSTEI 0
Maxadens

Maxadens

12/10/2004

Eu tentei abrir a tabela no evento on show, tentei no onActivate, no onCreate, tentei abrir ela atravez de um botão no form pra ver se dava certo... mas... nada!

Nada ainda!

Obrigado

Ronaldo


GOSTEI 0
Sandra

Sandra

12/10/2004

Max,

Quando tenta abrir as tabelas no onCreate (do form), em qual parte do código você está colocando SuaTabela.open?

Tentativa por tentativa, mais uma. Experimente abrir as tabelas antes do ShowModal, assim:

Application.createform(TFrmCadProduto, FrmCadProduto); 
SuaTabela1.open;  //
.                 //
.                 //  tente abrir aqui, nestas linhas
.                 //
SuaTabela6.open;  //
FrmCadProduto.Showmodal; 
FrmCadProduto.release; 
FrmCadProduto:=nil; 


Não sei se é assim que está fazendo, mas...
Boa sorte! :D


GOSTEI 0
Maxadens

Maxadens

12/10/2004

Eu fiz isso tambem. Abri antes de criar o form e antes do showmodal. Na primeira vez funciona certinho. Quando fecha o formulario e abre denovo os grids ficam todos em branco.

Mas obrigado pelo palpite fico feliz mesmo não dando certo.

Ronaldo.


GOSTEI 0
Maxadens

Maxadens

12/10/2004

Bom. Eu resolvi e então vou dizer o que tava acontecendo.

Três tabelas que eu estava usando tinha relacionamento com MasterSource. Quando eu destruia o form esse relacionamento se perdia. Então eu fiz o seguinte:

No evento OnActivate do FrmCadProdutos eu religuei as tabelas

DM.CDS_Produtos_Perfis.MasterSource:=FrmCadProdutos.DsProdutos;
DM.CDS_Produtos_Perfis.MasterFields:=´codigo´;
DM.CDS_Produtos_Perfis.IndexFieldNames:=´COD_PRODUTO´;
//depois abri as tabelas

Com esse relacionamento refeito, os grids voltaram a exibir os dados!

Obrigado a todos que tiveram a intenção de me ajudar. Agora... se algum dia acontecer com vc, lembre desse post que rapidinho vc resolve!

Um abraço a todos!

Ronaldo Araujo


GOSTEI 0
POSTAR