Fórum Menu Janelas - Como impedir abrir uma janela já aberta? #227409

21/04/2004

0

[b]A questão é a seguinte: tenho um menu ´Janelas´ que mostra todas as janelas já abertas, mas eu gostaria que não fosse possível abrir uma janela que já se encontra aberta, pois pode ser que dê pau na minha aplicação.

Gostaria que aparecesse uma mensagem de erro (´[color=red]A janela já está aberta![/color]´) e bloqueasse a abertura da mesma janela duas vezes.

Atenciosamente

Sergio 8) [/b][/b]


Tejo_pan

Tejo_pan

Responder

Posts

22/04/2004

Fatrix

Primeiro voce deve escrever a seguinte função e declara-lá na seção
private do código:

private
{ Private declarations }
function Formexiste(nomejanela:Tform):boolean;
public
{ Public declarations }
end;

implementation

{$R *.DFM}

Function TForm_Principal.Formexiste(Nomejanela:TForm):boolean;
var
I : integer;
begin
Formexiste := false;
for i := 0 to componentcount - 1 do
if Components[i] is TForm then
if TForm(Components[i])= nomejanela then
Formexiste := true;
end;


É simples, no menu janela coloque o seguinte código:

If Formexiste(Nome do Form) = false then
Begin
Nome do Form := TNome do Form.Create(Self);
end
else
If Formexiste(Nome do Form) = true then
Begin
showmessage(´A janela já está aberta´);
Nome do Form.BringToFront;
Nome do Form.SetFocus;
end;


Espero ter ajudado


Responder

Gostei + 0

22/04/2004

Tejo_pan

EXECENTE!!!

Funcionou perfeitamente.

Muito obrigado mesmo.



Sergio Costa Faria


Responder

Gostei + 0

22/04/2004

Sgubert

Olá amigo!!!!

Será que seia possível vc me exemplificar como vc imlementou esse seu menu janelas???? Tenho uma aplicação MDI e gostaria de fazer este menu!!! Com relação a seu problema tente o seguinte, é mais simples e fácil.....

No evento on create da janela:

if Janela01 = nil
then ´mostra ela´
else ´traz ela para frente ou da uma mensagem´

OBS: No evento on destroy das janelas vc deve fazer o seguinte:

Janela01 = nil.

=> Acho que assim é bem masi fácil e legível....

[]´s
Samuel Gubert


Responder

Gostei + 0

22/04/2004

Tejo_pan

segue o menu abaixo:

| Arquivo | Cadastro | Janelas | Ajuda |

No menu Janelas você deverá defini-la como ´Window Menu´ no Object Inspector. Depois, no seu formulário principal você deverá escrever o código acima (o primeiro código), em seguida, para cada janela que você for abrir (exemplo: cadastro >> clientes) você implementará o segundo código.

Espero ter ajudado.

Atenciosamente
Sergio Costa Faria


Responder

Gostei + 0

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

Aceitar