Saindo com a tecla ESC
Pessoal como faço pra ao clicar a tecla ESC ela pergunte ao usuario ´DESEJA SAIR´ caso sim ele feche a Tela!
obrigado!
obrigado!
Nilodp
Curtidas 0
Respostas
Nilodp
04/02/2008
e com a tecla shift + tab tb
obrigado
obrigado
GOSTEI 0
Cd.beco_df
04/02/2008
para vc fazer com que o esc funcione, coloque um botao como sair,
na propriedade cancel, para true, a propriedade modal result mrcancel
e no form para que venha a pergunta ao usuario. no evento on can Close
na propriedade cancel, para true, a propriedade modal result mrcancel
e no form para que venha a pergunta ao usuario. no evento on can Close
GOSTEI 0
Tiago Rizzon
04/02/2008
Oi!
Para aparecer a pergunta ao tentar fechar o form principal...
No evento onCloseQuery
canClose := Application.MessageBox(´Tem certeza que deseja sair?´, ´Atenção!´, MB_YESNO+MB_ICONQUESTION) = idYES;
Para vc fechar utilizando a tecla ESC, não aconselho vc colocar em campo ou grade, eu, particularmente, prefiro utilizar uma ação (componente TActionList com uma ação) com o comando Close;
Aí, na propriedade SecondaryShortCuts da ação, coloca assim:
ESC
SHIFT+TAB
Funciona, mas tem inumeros métodos prá fazer isso!
Esse é o meu método!
Espero q isso ajude!
Abraço..
;-)
Para aparecer a pergunta ao tentar fechar o form principal...
No evento onCloseQuery
canClose := Application.MessageBox(´Tem certeza que deseja sair?´, ´Atenção!´, MB_YESNO+MB_ICONQUESTION) = idYES;
Para vc fechar utilizando a tecla ESC, não aconselho vc colocar em campo ou grade, eu, particularmente, prefiro utilizar uma ação (componente TActionList com uma ação) com o comando Close;
Aí, na propriedade SecondaryShortCuts da ação, coloca assim:
ESC
SHIFT+TAB
Funciona, mas tem inumeros métodos prá fazer isso!
Esse é o meu método!
Espero q isso ajude!
Abraço..
;-)
GOSTEI 0
Nilodp
04/02/2008
Nao consegui achar a propriedade
SecondaryShortCuts da ação, coloca assim:
ESC
SHIT+TAB
eu fui no form principal em EVENTS
>>onCloseQuery
canClose := Application.MessageBox(´Tem certeza que deseja sair?´, ´Atenção!´, MB_YESNO+MB_ICONQUESTION) = idYES;
ai tudo bem! funfo! mais pra por os botoes pra executar esta acao nao consegui encontrar
SecondaryShortCuts da ação, coloca assim:
ESC
SHIT+TAB
eu fui no form principal em EVENTS
>>onCloseQuery
canClose := Application.MessageBox(´Tem certeza que deseja sair?´, ´Atenção!´, MB_YESNO+MB_ICONQUESTION) = idYES;
ai tudo bem! funfo! mais pra por os botoes pra executar esta acao nao consegui encontrar
GOSTEI 0
Tiago Rizzon
04/02/2008
Assim, como te disse tem muitas maneiras de sair do programa com a tecla ESC, aqui embaixo a minha maneira... Não sei se é a melhor, mas funciona legal!
Na paleta de componentes Standard coloca o componente TActionList no teu formulário, dá dois cliques em cima do ActionList e adiciona uma nova ação... Nas propriedades da ação vai ter SecondaryShortCuts, coloca assim:
ESC
SHIFT+TAB
Aí vc programa a ação com o comando Close, tri simples!
Outra maneira é vc programar no evento OnKeyPress do formulário algo tipo:
If Key = #27 then Close;
Abração, espero q ajude!
;-)
Na paleta de componentes Standard coloca o componente TActionList no teu formulário, dá dois cliques em cima do ActionList e adiciona uma nova ação... Nas propriedades da ação vai ter SecondaryShortCuts, coloca assim:
ESC
SHIFT+TAB
Aí vc programa a ação com o comando Close, tri simples!
Outra maneira é vc programar no evento OnKeyPress do formulário algo tipo:
If Key = #27 then Close;
Abração, espero q ajude!
;-)
GOSTEI 0
Paullsoftware
04/02/2008
para detectar o precionamento das teclas você faz:
Mude a propriedade [b:b9920fc3af]KeyPreview[/b:b9920fc3af] do Form para True
no evento OnKeyDown faça
para detectar o fechamento do form você pode usar como nilodp mensionou:
no evento [b:b9920fc3af]OnQueryClose[/b:b9920fc3af] do form
espero ter ajudado :wink:
Mude a propriedade [b:b9920fc3af]KeyPreview[/b:b9920fc3af] do Form para True
no evento OnKeyDown faça
if ( Key = VK_ESCAPE ) or (Shift = [ssShift]) and (Key = VK_TAB) then Close;
para detectar o fechamento do form você pode usar como nilodp mensionou:
no evento [b:b9920fc3af]OnQueryClose[/b:b9920fc3af] do form
CanClose := False; CanClose := Application.MessageBox(´Tem certeza que deseja sair?´, ´Atenção!´, MB_YESNO+MB_ICONQUESTION) = idYES;
espero ter ajudado :wink:
GOSTEI 0
Nilodp
04/02/2008
naum tava funcionando pq o form principal
a propriedade FORMSTYLE estava FsMDIform
ai mudei pra normal ai funfo
=/
estranho!
a propriedade FORMSTYLE estava FsMDIform
ai mudei pra normal ai funfo
=/
estranho!
GOSTEI 0
Andepunk
04/02/2008
faz asssim no evento OnFormKeyPress
If Key=#27 Then
begin
Key:=0;
if (coloca a mensagem) Then
close;
end;
If Key=#27 Then
begin
Key:=0;
if (coloca a mensagem) Then
close;
end;
GOSTEI 0