Como localizar tela(janela) da aplicacão ja aberta!

21/05/2008

0

Bom é o seguinte crio meus forms da seguinte maneira

            form1:=tform1.create(self);
            try
               form1.showmodal;
            finally
               form1.free;
               form1:=nil;
            end;


e crie um form para consultas em geral, e chamo ela atraves de um tecla geral de atalho em todo o sistema, o problema é que eu consigo criar esta tela mais de uma vez, uma por cima da outra e eu quero evitar isso, como eu poderia fazer?

Procurei mas nao encontrei nada que pude-se resolver meu problema.


Xtreme

Xtreme

Responder

Posts

21/05/2008

Eniorm

faz assim

if (SeuForm = Nil) then
  SeuForm := TSeuForm.Create(Nil); // eu prefiro passar nil
  try
    SeuForm.ShowModal;
  finally
    SeuForm.Release;
    SeuForm := Nil;
  end;



Responder

27/05/2008

Xtreme

[quote:bbbbf7abbc=´Enio Marconcini´]faz assim

if (SeuForm = Nil) then
  SeuForm := TSeuForm.Create(Nil); // eu prefiro passar nil
  try
    SeuForm.ShowModal;
  finally
    SeuForm.Release;
    SeuForm := Nil;
  end;
[/quote:bbbbf7abbc]

Até tentei mas não deu certo! Valeu pela ajuda, estou querendo poder abrir minhas janelas sem ficar preso no showmodal, podendo abrir mais de uma janela por vez, mas não a mesma duas vezes.


Responder

27/05/2008

Eniorm

neste caso vc deve usar janelas MDI

o form principal da aplicação deve ser MDIForm

o restante MDIChild

vc faz assim neste caso

if NomeForm = Nil then
  NomeForm := TNomeForm.Create(Nil);
NomeForm.Show;


no evento [b:aa900ffcc9]OnClose [/b:aa900ffcc9]de cada form MDIChild vc usa:
Release;
NomeForm := Nil;



Responder

27/05/2008

Emerson Nascimento

tente algo assim:
if Application.FindComponent(´Form1´) = nil then
  Application.CreateForm(TForm1, Form1)
else
  Form1.BringToFront;

Form1.WindowState:=wsNormal;



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar