Menu Janelas - Como impedir abrir uma janela já aberta?
[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]
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
Curtidas 0
Respostas
Fatrix
21/04/2004
Primeiro voce deve escrever a seguinte função e declara-lá na seção
private do código:
É simples, no menu janela coloque o seguinte código:
Espero ter ajudado
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
GOSTEI 0
Tejo_pan
21/04/2004
EXECENTE!!!
Funcionou perfeitamente.
Muito obrigado mesmo.
Sergio Costa Faria
Funcionou perfeitamente.
Muito obrigado mesmo.
Sergio Costa Faria
GOSTEI 0
Sgubert
21/04/2004
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
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
GOSTEI 0
Tejo_pan
21/04/2004
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
| 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
GOSTEI 0