Applicação sempre focada
Bem , ate hj não vi nada parecido...
Colocar o Form sempre a frente , trazer o Form para frente , fazer ele Piscar isto tudo ja foi amplamente debatido por esta comunidade.. Mas gostaria de fazer mais.. Gostaria de alem de trazer este form para frente e que ele recebesse o foco..
Para ser mais preciso , veja um exemplo .. Suponha que o form esteja na frente e que o usuário clica-sse em outro lugar... Mesmo que o form continue na frente , o Foco agora e deslocado..
Gostaria de retornar este foco automaticamente para a aplicação..
:idea: :idea: :idea:
Mesmo que para isto eu use um [b:f1c8db53a0]Timer[/b:f1c8db53a0] que exporadicamente retorna-sse o foco para a aplicação..
Ou
:idea: :idea:
Ou algo que imite Tipo o Click do mouse em cima do Form
Bem , o que acontece e o seguinte, quando a conexão cai , o form é trazido para a frente e o usuário tem que digitar uma senha em um edit.. O problema é que apesar do form esta a frente em muitas dessas situações o foco não esta com o Form..Ai o usuário tem que clicar em cima do form :cry: :cry: :cry: .. gostaria de fazer isto automaticamente , via programação
Fiu claro :?: :?: :?: Alguma duvida
Colocar o Form sempre a frente , trazer o Form para frente , fazer ele Piscar isto tudo ja foi amplamente debatido por esta comunidade.. Mas gostaria de fazer mais.. Gostaria de alem de trazer este form para frente e que ele recebesse o foco..
Para ser mais preciso , veja um exemplo .. Suponha que o form esteja na frente e que o usuário clica-sse em outro lugar... Mesmo que o form continue na frente , o Foco agora e deslocado..
Gostaria de retornar este foco automaticamente para a aplicação..
:idea: :idea: :idea:
Mesmo que para isto eu use um [b:f1c8db53a0]Timer[/b:f1c8db53a0] que exporadicamente retorna-sse o foco para a aplicação..
Ou
:idea: :idea:
Ou algo que imite Tipo o Click do mouse em cima do Form
Bem , o que acontece e o seguinte, quando a conexão cai , o form é trazido para a frente e o usuário tem que digitar uma senha em um edit.. O problema é que apesar do form esta a frente em muitas dessas situações o foco não esta com o Form..Ai o usuário tem que clicar em cima do form :cry: :cry: :cry: .. gostaria de fazer isto automaticamente , via programação
Fiu claro :?: :?: :?: Alguma duvida
Marco Salles
Curtidas 0
Respostas
Marco Salles
06/06/2005
Sobe....
GOSTEI 0
Marco Salles
06/06/2005
Xiiiiiiiiiiiii
GOSTEI 0
Marco Salles
06/06/2005
No aguardo....
GOSTEI 0
Delphi32
06/06/2005
Olha, eu nunca tentei fazer isso não, mas você já tentou:
Logicamente, esse código teria que ficar em um timer.
Agora, me diga uma coisa. Nesse seu caso, você não poderia chamar o form com ´ShowModal´? Desse forma o usuário seria obrigado a digitar a senha. O foco jamais sairia do form.
Até!
Form.SetFocus;
Logicamente, esse código teria que ficar em um timer.
Agora, me diga uma coisa. Nesse seu caso, você não poderia chamar o form com ´ShowModal´? Desse forma o usuário seria obrigado a digitar a senha. O foco jamais sairia do form.
Até!
GOSTEI 0
Marco Salles
06/06/2005
Obrigado amigo...
Ja tentei :cry: :cry: :cry:
O Problema é que mesmo que o form apareça , quando a conexão cai, o foco é deslocado por alguma coisa inerente aos meus conhecimentos..Ai o usuário te que clicar no form...
[b:aec0206e61]Eu não sei qual o comando deve dar no evento ontimer para que o controle volte a aplicação ..Alguma coisa que devo dizer ao sistema operacional , que a janela do aplicativo e que deve estar em destaque[/b:aec0206e61]...
Olha, eu nunca tentei fazer isso não, mas você já tentou:
Código:
Form.SetFocus;
Logicamente, esse código teria que ficar em um timer.
Ja tentei :cry: :cry: :cry:
Agora, me diga uma coisa. Nesse seu caso, você não poderia chamar o form com ´ShowModal´? Desse forma o usuário seria obrigado a digitar a senha. O foco jamais sairia do form.
O Problema é que mesmo que o form apareça , quando a conexão cai, o foco é deslocado por alguma coisa inerente aos meus conhecimentos..Ai o usuário te que clicar no form...
[b:aec0206e61]Eu não sei qual o comando deve dar no evento ontimer para que o controle volte a aplicação ..Alguma coisa que devo dizer ao sistema operacional , que a janela do aplicativo e que deve estar em destaque[/b:aec0206e61]...
GOSTEI 0
Marco Salles
06/06/2005
Sinceramente eu ainda não desisti
GOSTEI 0
Marco Salles
06/06/2005
Mas sera o benedito :cry: :cry: :cry: :cry:
GOSTEI 0
Kotho
06/06/2005
Eu não testei... mas você já tentou usar Application.BringToFront :?: :?:
GOSTEI 0
Marco Salles
06/06/2005
Eu não testei... mas você já tentou usar Application.BringToFront
Ainda não.. Vou testar agora.
Obrigado.
GOSTEI 0
Marco Salles
06/06/2005
Ate agora a aplicação ta um tiro... :P :P :P
Onde voce consegui esta instrução Application.BringToFront e o que praticamente ela faz :?: :?: :?:
Onde voce consegui esta instrução Application.BringToFront e o que praticamente ela faz :?: :?: :?:
GOSTEI 0
Kotho
06/06/2005
Peguei no help do Delphi... parece que ela traz a applicação na frente de todas as outras...
GOSTEI 0
Paullsoftware
06/06/2005
amigo tente isso...
isso faz com que ele fique sempre por cima das aplicações!!!
SetWindowPos(Handle,Hwnd_TopMost,0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE)
....
dica dada por Massuda, um usuário do forum...
[b:954c3dd6e5] ANTES DE POSTAR SUAS DÚVIDAS, USEM A FERRAMENTA DE BUSCA!!![/b:954c3dd6e5] :wink:
isso faz com que ele fique sempre por cima das aplicações!!!
SetWindowPos(Handle,Hwnd_TopMost,0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE)
....
dica dada por Massuda, um usuário do forum...
[b:954c3dd6e5] ANTES DE POSTAR SUAS DÚVIDAS, USEM A FERRAMENTA DE BUSCA!!![/b:954c3dd6e5] :wink:
GOSTEI 0
Marco Salles
06/06/2005
amigo tente isso...
isso faz com que ele fique sempre por cima das aplicações!!!
SetWindowPos(Handle,Hwnd_TopMost,0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE)
....
dica dada por Massuda, um usuário do forum...
ANTES DE POSTAR SUAS DÚVIDAS, USEM A FERRAMENTA DE BUSCA!!!
Colocar o Form sempre a frente , trazer o Form para frente , fazer ele Piscar isto tudo ja foi amplamente debatido por esta comunidade.. Mas gostaria de fazer mais.. Gostaria de alem de trazer este form para frente e que ele recebesse o foco..
eu ja conhecia esta instrução amigo..Com eu mesmo disse no início.Não so ela mas outras similares
GOSTEI 0
Paullsoftware
06/06/2005
intão Massuda, comigo sempre funcionou assim:::
mudo a propiedade do componente TTimer para 1 e coloco dentro dele o codigo abaixo:
usando as funções que vc mesmo já disse que conhece, apenas chamei o foco para o meu componente e digito a senha...
Obs.: [b:b1465a9e81]a tela de login que uso, fica em todo desktop...[/b:b1465a9e81]
se conseguir outra forma mais agradável, me passa... eu sempre uso assim :?
mudo a propiedade do componente TTimer para 1 e coloco dentro dele o codigo abaixo:
SetWindowPos(Form_TelaDeLogin.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE); if ( TelaDeLogin = True ) then //Variavel que recebe a tela de login do micro if Not ( Application.Active ) then begin Application.ProcessMessages; Application.Restore; SetWindowPos(Form_TelaDeLogin.handle, HWND_TOPMOST, Form_TelaDeLogin.Left, Form_TelaDeLogin.Top,Form_TelaDeLogin.Width, Form_TelaDeLogin.Height, 0); SetForegroundWindow(Application.Handle); Application.BringToFront; Form_TelaDeLogin.Focused; end else if IsIconic(Application.Handle) then begin Application.ProcessMessages; Application.Restore; SetWindowPos(Form_TelaDeLogin.handle, HWND_TOPMOST, Form_TelaDeLogin.Left, Form_TelaDeLogin.Top,Form_TelaDeLogin.Width, Form_TelaDeLogin.Height, 0);SetForegroundWindow(Application.Handle); Application.BringToFront; Form_TelaDeLogin.Focused; end; EditID.SetFocus;
usando as funções que vc mesmo já disse que conhece, apenas chamei o foco para o meu componente e digito a senha...
Obs.: [b:b1465a9e81]a tela de login que uso, fica em todo desktop...[/b:b1465a9e81]
se conseguir outra forma mais agradável, me passa... eu sempre uso assim :?
GOSTEI 0
Marco Salles
06/06/2005
intão Massuda, comigo sempre funcionou assim:::
mudo a propiedade do componente TTimer para 1 e coloco dentro dele o codigo abaixo:
Código:
SetWindowPos(Form_TelaDeLogin.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
if ( TelaDeLogin = True ) then //Variavel que recebe a tela de login do micro
if Not ( Application.Active ) then
begin
Application.ProcessMessages;
Application.Restore;
SetWindowPos(Form_TelaDeLogin.handle, HWND_TOPMOST, Form_TelaDeLogin.Left, Form_TelaDeLogin.Top,Form_TelaDeLogin.Width, Form_TelaDeLogin.Height, 0);
SetForegroundWindow(Application.Handle);
Application.BringToFront;
Form_TelaDeLogin.Focused;
end else
if IsIconic(Application.Handle) then
begin
Application.ProcessMessages;
Application.Restore;
SetWindowPos(Form_TelaDeLogin.handle, HWND_TOPMOST, Form_TelaDeLogin.Left, Form_TelaDeLogin.Top,Form_TelaDeLogin.Width, Form_TelaDeLogin.Height, 0);SetForegroundWindow(Application.Handle);
Application.BringToFront;
Form_TelaDeLogin.Focused;
end;
EditID.SetFocus;
usando as funções que vc mesmo já disse que conhece, apenas chamei o foco para o meu componente e digito a senha...
Obs.: a tela de login que uso, fica em todo desktop...
se conseguir outra forma mais agradável, me passa... eu sempre uso assim
:?: :?: :?: :?: :?: :?:
GOSTEI 0