25/03/2006

Surgir e desaparecer Form

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


Rudá

Respostas

30/03/2006

Rudá

Alguem pode me ajudar??


Responder Citar

30/03/2006

Paullsoftware

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:
Form2.BringToFront;
AnimateWindow(form2.Handle,3000,AW_VER_NEGATIVE);
Form2.Show;

[color=blue:144378403f][size=18:144378403f]onde [/size:144378403f][/color:144378403f]:!: :!: :!:
no lugar de [i:144378403f]AW_VER_NEGATIVE[/i:144378403f] pode ser:
[b:144378403f][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][/b:144378403f]

espero ter ajduado! :wink:


Responder Citar

30/03/2006

Rudá

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!


Responder Citar

30/03/2006

Paullsoftware

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


Responder Citar

30/03/2006

Rudá

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??


Responder Citar

30/03/2006

Tiks

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


procedure minhathread.execute;
begin
{comandos aqui}
freeOnterminate := true;
end;


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


Responder Citar

31/03/2006

Rudá

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??


Responder Citar

31/03/2006

Tiks

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
:)


Responder Citar

31/03/2006

Rudá

Fiz assim:

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??


Responder Citar

01/04/2006

Rudá

Pode me ajudar??


Responder Citar

01/04/2006

Tiks

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:


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~


Responder Citar

01/04/2006

Rudá

Value cara mas consegui, usei [b:f2fde14c0c]Synchronize[/b:f2fde14c0c]


Responder Citar

02/04/2006

Rudá

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??


Responder Citar

02/04/2006

Rudá

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??


Responder Citar