Array
(
)

Surgir e desaparecer Form

Rudá
   - 25 mar 2006

Como faço para surgir o formulário de baixo para cima(subir) e desaparecer de cima para baixo(descendo) como no msn??


Rudá
   - 30 mar 2006

Alguem pode me ajudar??


Paullsoftware
   - 30 mar 2006

Op´s...
tente assim...

crie uma nova aplicação, adicione um novo form e no form principal coloque um botton e teste o código abaixo:
#Código

Form2.BringToFront;
AnimateWindow(form2.Handle,3000,AW_VER_NEGATIVE);
Form2.Show;

[size=18:144378403f]onde [/size:144378403f]:!: :!: :!:
no lugar de AW_VER_NEGATIVE pode ser:
[list:144378403f]AW_HOR_POSITIVE
AW_HOR_NEGATIVE
AW_VER_POSITIVE
AW_VER_NEGATIVE
AW_CENTER
AW_HIDE
AW_ACTIVATE
AW_SLIDE
AW_BLEND[/list:u:144378403f]

espero ter ajduado! :wink:


Rudá
   - 30 mar 2006

Essas funções não server já que ele não sobe e sim ele vai mostrando, quero que ele va subindo, surgindo como no popup do msn!!

E tem um problema tb ele para a aplicação toda quando ta executando essa função!


Paullsoftware
   - 30 mar 2006

tem um artigo no site da ClubDelphi, pode ser isso q vc esta procurando...
vou procurar e posto aqui se achar... :wink:


Rudá
   - 30 mar 2006

Exemplo: Tenho 5 form para ser aberto e ele abre subindo, só que eu quero que eles sejam abertos todos de vezes, e não um esperando o outro abrir totalmente para o outro começar!

Não tem como abrir todos de vez??


Tiks
   - 30 mar 2006

use threads!
#Código

type
minhathread = class(TThread)
private
protected
procedure Execute; override;
end;


#Código
procedure minhathread.execute;
begin
{comandos aqui}
freeOnterminate := true;
end;


e chame ela assim:
minhathread.Create(false);


Rudá
   - 31 mar 2006

O problema tb é que quando executo alguma função ele para tb o TTimer,

Eu quero que ele execute a ação só que não trave o form!

Pode me ajudar??


Tiks
   - 31 mar 2006

quando uma função é muito longa, o aplicativo para e espera o término dela, por isso ele freeza, para evitar isso é só chamar a função numa thread separada, como o meu ultimo post, assim seu form não irá travar.

qualquer dúvida só responder
:)


Rudá
   - 31 mar 2006

Fiz assim:

#Código

procedure TForm1.Button1Click(Sender: TObject);
begin
Form:= TForm2.Create(Application);
minhathread.Create(false);
end;

procedure minhathread.execute;
begin
AnimateWindow(Form.Handle,5000,AW_BLEND);
Form.Show;
FreeOnterminate:= True;
end;


Ai quando clico fica tudo blz, mas se eu clicar em seguida antes de ele completar o AnimateWindow ele funciona blz, ai eu fecho o segundo form que abrir e ele fecha agora o primeiro ele não fecha clico no x e nada, o que pode ser??


Rudá
   - 01 abr 2006

Pode me ajudar??


Tiks
   - 01 abr 2006

Desculpe a demora para responder,
deixo ver se eu entendi, ele da esse problema quando você clica novamente antes de terminar?

Se for, você pode por para ele só executar a thread novamente se a primeira já tiver sido terminada, tipo assim:


#Código

procedure TForm1.Button1Click(Sender: TObject);
begin
Form:= TForm2.Create(Application);
minhathread.Create(false);
end;

procedure minhathread.execute;
begin
if pronto = true then begin
pronto := false;
AnimateWindow(Form.Handle,5000,AW_BLEND);
Form.Show;
pronto := true;
FreeOnterminate:= True;
end;
end;


Eu estou fora de casa então não pude testar para ver se deu certo, se não funcionar a idéia é esta: Checar se a thread está em execução, se estiver não executar.

Espero que funcine
Tiks~


Rudá
   - 01 abr 2006

Value cara mas consegui, usei Synchronize


Rudá
   - 02 abr 2006

Estou com um problema de Form em DLL,

Não estou conseguindo fazer com que ela feche direito, sempre da erros doidos, um cada vez mais diferente do outro, que maneira certa deve ser liberado da memória um form de uma DLL??


Rudá
   - 02 abr 2006

Achei o problema!

Tenho uma TImage no FormDLL e no Form do Aplicativo tenho outra TImage, a dll cria o FormDLL e me manda qual é o form para o Form do Aplicativo ai eu envio o bitmap da TImage do Aplicativo para a TImage do FormDLL, até ai tudo funciona, mas quando fecho o FormDLL, e no OnClose eu dou um Free; ai ele da erro mas se eu tirar a passagem do Bitmap ele não da mais erro, e se eu colocar uma Bitmap no TImage já definido no FormDLL e gerar a dll não da erro.

Pelo que eu percebi é na hora de passar o Bitmap.

Alguem pode me esclarecer pq??