Form sempre na frente

25/03/2006

0

Alguem pode me ajudar to precissando de algum código para fazer meu form sempre ficar na frente, não precissa ter foco mas sempre ficar na frente como no Gerenciador de Tarefas, ele perde o foco mas fica na frente.

Tó fazendo um MSN Popup com muito mais funções e to precissando disso.

Irei disponibilizar aqui para o pessoal, quando tiver pronta!

Obrigado!


Rudá

Rudá

Responder

Posts

25/03/2006

Vinicius2k

Colega,
SeuForm.Style := fsStayOnTop;

Ou alterar a propriedade [b:e00076965f]Style[/b:e00076965f] diretamente no Object Inspector.


Responder

25/03/2006

Rudá

[b:65845a9a58]Undeclared identifier ´Style´[/b:65845a9a58]

Não tem a propriededa Style


Responder

25/03/2006

Vinicius2k

Desculpe...

Leia-se [b:63858aa6f1]FormStyle[/b:63858aa6f1].


Responder

25/03/2006

Rudá

Valeu é isso mesmo que eu queria muito obrigado!


Responder

25/03/2006

Rudá

Funciona se setar a propriedade para o form principal, mas não funciona para os form filho.

Como resolver isso??


Responder

25/03/2006

Martins

[quote:76e6f6954a=´Rudá´]Funciona se setar a propriedade para o form principal, mas não funciona para os form filho.

Como resolver isso??[/quote:76e6f6954a]

O Código q o Vinicius passou deveria funcionar, vc testou mudando as propriedade nos forms filho? Sua aplicação é SDI ou MDI.

Em último caso tente.

    SetForegroundWindow(Formx.Handle);


Boa sorte!!!


Responder

25/03/2006

Rudá

Como faço para identificar se é SDI ou MDI??

Estou fazendo assim:

Estou usando Delphi 7;
Vou em File - New - Application;
Coloco um Button no Form1;
E Coloquei esse Código:
procedure TForm1.Button1Click(Sender: TObject);
var
Form: TForm;
begin
Form:= TForm.Create(Self);
Form.FormStyle:= fsStayOnTop;
Form.Show;
end;


No Form1 o [b:4454b48427]FormStyle[/b:4454b48427] está [b:4454b48427]fsNormal[/b:4454b48427];
E assim não funcionou!
Tentei Colocar no Form1 o [b:4454b48427]FormStyle[/b:4454b48427] = [b:4454b48427]fsStayOnTop[/b:4454b48427];
Mas mesmo assim não funciona!

Podem dar uma olhada no que eu fiz: http://www.hiperleao.com.br/frente.zip


Responder

25/03/2006

Vinicius2k

Até onde eu sei, isto só é possível com um Form -- o principal. Se sua aplicação tem mais de um form, não conheço solução para a situação, pois o segundo form é mantido sobre o form principal, porém não sobre as demais janelas do Windows.

Em tempo, seu código de criação do segundo form está, digamos, um tanto ´estranho´...
uses
  UnitDoForm2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SeuForm2 := TSeuForm2.Create(Application);
  SeuForm2.Show;
end;



Responder

25/03/2006

Rudá

Poderia ser feito assim então, colocar o form principal na frente de tudo e os filhos na frente do principal e com isso na frente de tudo tem como fazer isso??


Responder

25/03/2006

Rudá

Não tem alguma DLL que faça isso??


Responder

26/03/2006

Kroki

Não sei se é isso que vc quer,modifique com sua nescessidade;
No evento OnShow do Form que vc quer;
...
try
Form1.FormStyle:= fsStayOnTop;
SetForegroundWindow(Form1.Handle);
Form1.Activate;
except end;
...
OBS:Na hora da compilação ele gera uma execessão.
Seu form sempre estará na frente dos outros.


Responder

26/03/2006

Rudá

Com isso não da para mecher no form direito!


Responder

26/03/2006

Kroki

Aqui eu trabalho normal,oque vc não conseguiu?


Responder

26/03/2006

Rudá

Não consigo clicar no botão fechar do form principal!


Responder

26/03/2006

Kroki

Vc pode tentar adaptar algo porque não sei como vc ta usando,aqui eu consigo fechar e abrir normal,mas se eu chamar um outro for tem que ser Modal.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar