Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

echo "VINICIUS"

[Resolvido] Como ocultar um form md child

Recommended Posts

o negocio eh o seguinte gente

 

estou desenvolvendo um aplicativo em delphi....

estou utilizando form MDIform e MDIchild

 

chamo os forms dentro do principal...porem

gostaria de quando executasse o programa apenas o form principal aparecesse

e os demais so aparecessem quando fossem chamados

 

so que os forms MDIchilds, aceitam ser ocultados

alguem tem alguma ideia...

 

valeu

 

ate

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius o form principal é MDIchild ou MDIform?

 

 

eh o mdi form

 

tem alguma ideia?

 

eh pk eh assim

eh um sistema onde cadastra-se os clientes e no dia do seu aniversario aparece uma janelinha de parabens

isso ja ta ffuncionando perfeito o banco ja seleciona exatamente os que fazem aniversarios e joga na tela atraves de um dbgrid

que esta na telinha (mdichild), o problema eh que essa telinha abre de qualquer jeito mesmo naum tendo aniversariantes para o dia

ai ela mostra o grid vazio..o que mostra que a busca sql ta certa, porem que que quando naum houvessa aniversariante naum abrisse

 

 

ja tentei ocultar mas da erro, fala que o mdichild naum pode ser ocultado

transformei em form normal e ate funciona mas ela nao sobrepoe o form principal ai o usuario pra saber que ela abriu tem qeu arratar a principal, meio que adivinhar que tem um outro form ali atras ja que ela eh menor

 

 

 

alguem tem alguma ideia?

eu fiz as condicionais mas da erro

 

tentei algo tipo

o edit1 recebe a data do sistema e armazena no banco pra comparar

 

se dbedit1.field.value = edit1.text entaum

form2.destroy; //ja tenttei de todos esses jeitos um por vez eh claro

form2.close;

form2.visible:=false;

 

 

pensei em chamar o evento onclose do form acho que vai dar certo mas como chamar esse evento sem clicar no botao de fechar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que essa tela não poderia ser substituida por uma "MESSAGEDLG" ou "SHOWMESSAGE", desse modo você coloca uma condição e pronto.

Se não me falha a memória também da para colocar o NOME E A DATA do aniversariante.

Acho que fk mais leve, é uma sugestão.

Tenta aí .....

 

Só por curiosidade qual a condição para o form2 aparecer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalho na medida dos meus conhecimentos, me viro bem !!!

 

Imagino que a sua condição esteja NO EVENTO ONCREATE DO FORM1 E seja + ou - menos assim:

 

PS.: CLARO ANTES TEM A SQL QUE SELECIONA A DATA.

 

IF QUERY.DATA_ANIV = DATE THEN

BEGIN

FORM2 := TFORM2.CREATE(SELF);

END

 

 

Eu não consigo ver aonde pode dar o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou postar o codigo

 

procedure TForm1.FormCreate(Sender: TObject);

var

help:string;

begin

Edit1.text := FormatDateTime('dd/mm',Date);

help:='''';

form1.ADOQuery1.Active:=false;

form1.ADOQuery1.SQL.Clear;

form1.ADOQuery1.SQL.Add('select NASCIMENTO,NOME,ANIVERSARIO from cliente WHERE ANIVERSARIO ='+help+edit1.text+help);

form1.ADOQuery1.Active:=true;

 

if(edit1.Text <> DBEdit1.Field.Value)then

begin

form9.Close;

end;

 

 

 

eu testo se ele eh diferente , pois como eh um mdichild e quero qeu apareca ele eh criado junto com o principal

ai tenho qeu ter uma condicao para ele sumiu

 

tenho um edit que recebe a data ai a compara com o banco

e depois sim fechar...mas ele naum aceita quando cai na condicao de fechar e da erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.text := FormatDateTime('dd/mm',Date);

help:='''';

form1.ADOQuery1.Active:=false;

form1.ADOQuery1.SQL.Clear;

form1.ADOQuery1.SQL.Add('select NASCIMENTO,NOME,ANIVERSARIO from cliente WHERE ANIVERSARIO ='+ Quotedstr(edit1.text));

form1.ADOQuery1.Active:=true;

 

if ADOQUERY1.recordcount = 0 then

begin

form9.release;

form9:= nil;

end;

 

tenta assim !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu o mesmo erro de quando tentei do outro jeito

o qeu fz a função realese

ele compila normal mas aparece uma mensagem de erro

na hora qeu entra na condicao

ai o form aparece normalmente

Compartilhar este post


Link para o post
Compartilhar em outros sites

release (descarrega o form da memória)

nil (identifica o form como nill ou seja descarregado)

 

Ele da alguma message de erro?

 

O que eu coloquei foi, caso a query estiver vazia ele descarregar o formulário da memória.

Tenta rodar com F5 para ver se a query vazia ativa a condição, acho que o problema é esse, ele não entra na condição !!!

 

Uma das propriedades da seu ADOQuery1ANIVERSARIO.VALUE use ela ao invés do recordcount:

 

if ADOQuery1ANIVERSARIO.VALUE = 0 then

begin

condição ///

end

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo contrario ele entra sim na condicao

ja testei colocando o edit1.text recebendo uma frase caso

a condicao fosse verdadeira

 

porem quando coloco a respeito do form9 pra fecha-lo ai aparece essa mensagem

 

 

"Acess violation at address 00472F69 in moule 'gerencia_projeto.exe' read of address 000002F4"

 

 

ai depois abre normalmente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu montei um teste rapidamente ak no serviço e deu certo no oncretae do formchild.

O problema é que eu saio 14:00hs, em casa eu tenho delphi mas não uso internet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no oncreate do form9 tinha akela selecao sql porem nao tinha a condicao

cara acabei de completar colocando a condicao...e adivinha

 

funcionou cara você eh bom mesmo....

agente pode trocar uns contatos

 

estou desenvolvendo 2 aplicativos em delphi na minha regiao e um site em php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal cara, meu e - mail wllfl@ig.com.br, qualquer coisa que precisar.

Eu tô sempre no forum, é legal trocar idéias com outro programador.

Valeu um abraço ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você trabalha numa empresa da area?

 

valeu cara

vo te mandar meu msn pra gente trocar uma ideia...

 

value..ate a proxima...foi de grande ajuda..tenho qeu entregar esse projeto no fim do mes...

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na dia a dia eu sou TÉCNICO QUÍMICO, mas também sou formado em TÉCNICO EM INFORMÁTICA e desenvolvo em casa aplicativos pequenos para pequenas empresas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sou estudante faço sistemas de informaçaõ

comecei esse ano a desenvolvver a serio e esse eh apenas meu 3 projeto

rsrs....

 

mas eh bom trocar ideia com qeum sabe...rsr

 

 

aki sou novo aki como faco pra colocar o post coomo resolvido

 

topico resolvido...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.