GARANTIR DESCONTO

Fórum Sistema não fecha !!! fica residente na memória #187285

08/10/2003

0

alo...

preciso de uma grande força...
num sistema que estou desenvolvendo...
tipo, tava tudo normal... agora esta dando um erro estranho...

quando clico pra fechar o sistema...
ele fecha tudo certinho... mas ainda fica residente na memória...
alguem ja passou por isso ?
será que meu DELPHI ta com problema ??? as vezes ele trava quando clico em
´FILE - CLOSE ALL´

ja nao sei mais o q fazer...
ja mudei meu ´project options´
ja tentei colocar no evento ONCLOSE no FPRINCIPAL - um ´application.terminate´ mas nada da certo...
e quando estou editando no delphi... dou um F9, depois que saio do sistema tenho q pressionar ´CTRL + F2´ pra ter os forms de volta e poder COMPILAR o sistema..
caso contrario ele nao aceita sobscrever o que esta em ´ABERTO´ ...

percebi que num FORM: ´FLANCAMENTOS´

quando abro e vou fechar o sistema trava...

try
Application.CreateForm(Tflancamentos, flancamentos);
flancamentos.position := poScreenCenter;
flancamentos.showmodal;
finally
//flancamentos.Free; {aqui esta dando erro, se coloco isso o sistema trava}
end;

com certeza o problema esta nesse form... mas o q fazer ? eu preciso do desgracento !!!


desde ja agradeço pela força
té +

[i:c214d45cfc]Título em maiúsculas editado. Leia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689&sid=add834b4ed94967502cf2381c38e751a][u:c214d45cfc]Regras de Conduta[/u:c214d45cfc][/url]. (marcelo.c – Moderador)[/i:c214d45cfc]


Seven

Seven

Responder

Posts

08/10/2003

Cabelo

Caro Amigo

Preciso saber como vc cria seus Forms, se ele estão declarados para abrir automaticamente com o projeto faça o seguinte :

No botão ou menu que vc chama um determinado form vc deverá colocar o seguinte :

Application.CreateForm(TForm, Form);
Form.ShowModal;
Form.Release;

estes comandos ira criar o seu form na memória.
Mostrar na tela pelo método Modal (Tipo Mensagem);
Descarregar da memória todo o form;

Não esqueça de Tirar da criação automática os form que serão declarados, indo no menu Projects, item Options, paleta Forms, deixar somente o módulo de dados(se tiver) e o form Principal;

Espero ter ajudado...

Obs : responda o resultado por favor

Té +

Cabelo


Responder

Gostei + 0

08/10/2003

Bampavao

Tente

Action := caFree;
flancamentos := NIL;


Responder

Gostei + 0

08/10/2003

Seven

amigos...
valeu... mas nao deu certo !!!

tipo,
BAMPAVAO...

o action := caFree

reportou esse erro na hora de compilar: ´[Error] TPrincipal.pas(403): Incompatible types: ´TBasicAction´ and ´TCloseAction´´

cabelo..

os forms nao estao declarados para abrirem automaticamente... tentei o release tb e nao funcinoou :/

e ta exatamente assim:

try
Application.CreateForm(Tflancamentos, flancamentos);
flancamentos.showmodal;
finally
//flancamentos.free;
end;


mesmo assim obrigado ... se tiverem mais alguma ideia..
to precisando muito..

te +


Responder

Gostei + 0

08/10/2003

Cabelo

Não use o Try

e no lugar de .free, coloque .release;


Responder

Gostei + 0

08/10/2003

Seven

blz..
cabelo..

o try eu sempre usei... e nunca tive problema...
tb tentei sem e nao consegui sucesso...
nem o release...

tipo,
a questao eu descobri...

era um QUICKREPORT...
putz... tirei uma copia do sistema e fui apagar componente por componente do form e ir compilando... pra ver onde estava o erro..
e logo de cara o delphi travou quando tentei deletar o QUICKREPORT...
ja desinstalei o COMPOMENTE QUICKREP... reinstalei e o erro continua

assim... depois de desinstalar o componente... consegui remover o QUICKREPORT que estava dando erro.. daí compilei.. .e tudo funcionou perfeitamente.
reinstalei o compontente e quando crio outro QUICKREPORT... fica tudo certo denovo !
soh q vai dar uma canseira pra fazer esse relatorio novamente.

mas blz... vou verificar...
quando conseguir resolver e descobrir exatamente o q ocorrou eu posto aqui.

valeu cabelo_uni e a todos pela força


Responder

Gostei + 0

09/10/2003

Renaldo

procedure TfrmPrincipal.Pedido1Click(Sender: TObject);
begin
if varPedidos = True then
begin
frmPedidos.BringToFront;
Abort;
end;
frmPedidos:=TfrmPedidos.Create(Application);
frmPedidos.Show;
end;

procedure TfrmPedidos.FormClose(Sender: TObject; var Action: TCloseAction);
begin
varPedidos:=False;
Action:=CaFree;
frmPedidos:=nil;
end;

procedure TfrmPedidos.FormCreate(Sender: TObject);
begin
varPedidos:=True;
end;

É assim que eu uso, a variável global varPedidos é só para saber se a janela está aberta. Estou usando janelas mãe e filho.

Espero ter ajudado.


Responder

Gostei + 0

09/10/2003

Seven

ronaldo...

legal a sua dica...

pois uso o SHOWMODAL...
acho que da forma q vc falou fica mais profissional...
vou tentar mudar para esse modo de trabalho.

obrigado pela dica...


o outro problema foi resolvido da forma que falei..
depois de muita dor de cabeça e tal...
valeu a todos

té +


Responder

Gostei + 0

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

Aceitar