Problemas com F10 e F12
Oi, Uso Delphi 6
Estou precisando utilizar ou a F10 ou a F12 para fazer a abertura de uma tela de atalhos no meu sistema.
Só que quando utilizo a F12 simplesmente trava o sistema, e a F10 simula como se tivesse teclado o alt e abre o menu de canto da tela.
Utilizando o F8 funciona corretamente, alguem sabe qual o problema.
Agradeço antecipadamente qualquer ajuda.
Sandro
Estou precisando utilizar ou a F10 ou a F12 para fazer a abertura de uma tela de atalhos no meu sistema.
Só que quando utilizo a F12 simplesmente trava o sistema, e a F10 simula como se tivesse teclado o alt e abre o menu de canto da tela.
Utilizando o F8 funciona corretamente, alguem sabe qual o problema.
Agradeço antecipadamente qualquer ajuda.
Sandro
Salupe
Curtidas 0
Melhor post
William_itm
02/09/2005
Tente utilizar assim:
procedure .....
begin
case key of (ou IF se preferir ...)
vk_F10: begin
{Chama Formulário}
Abort;
end;
vk_F12: begin
{Chama Formulário}
Abort;
end;
end;
end;
procedure .....
begin
case key of (ou IF se preferir ...)
vk_F10: begin
{Chama Formulário}
Abort;
end;
vk_F12: begin
{Chama Formulário}
Abort;
end;
end;
end;
GOSTEI 1
Mais Respostas
Rômulo Barros
02/09/2005
Configure a propriedade [color=blue:927691a651]KeyPreview[/color:927691a651] do seu formulário para true.
Agora, no evento OnKeyDown do Formulário faça:
[color=blue:927691a651][b:927691a651]Obs:[/b:927691a651][/color:927691a651] Rodando por dentro do delphi, quando teclo F12, dá erro. Mas, quando rodo por fora do delphi funciona perfeitamente. [u:927691a651]Para a primeira citação, não sei qual é o problema.[/u:927691a651]
Agora, no evento OnKeyDown do Formulário faça:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If((Key = vk_F10)Or(Key = vk_F12))Then Begin Label1.Caption := ´10´ End; end;
[color=blue:927691a651][b:927691a651]Obs:[/b:927691a651][/color:927691a651] Rodando por dentro do delphi, quando teclo F12, dá erro. Mas, quando rodo por fora do delphi funciona perfeitamente. [u:927691a651]Para a primeira citação, não sei qual é o problema.[/u:927691a651]
GOSTEI 0
Martins
02/09/2005
[quote:ef31f1c56c=´Rômulo Barros´]Configure a propriedade [color=blue:ef31f1c56c]KeyPreview[/color:ef31f1c56c] do seu formulário para true.
Agora, no evento OnKeyDown do Formulário faça:
[color=blue:ef31f1c56c][b:ef31f1c56c]Obs:[/b:ef31f1c56c][/color:ef31f1c56c] Rodando por dentro do delphi, quando teclo F12, dá erro. Mas, quando rodo por fora do delphi funciona perfeitamente. [u:ef31f1c56c]Para a primeira citação, não sei qual é o problema.[/u:ef31f1c56c][/quote:ef31f1c56c]
Testei aqui e vi q dá erro mesmo, ele abre o debug e mostra o código asm, e não sei não, mas talvez é pq ele continua mantendo o controle da aplicação sei lá, e F12 é q faz ele alternar entre unit/form, só uma opnião q pode ser contestada por quem realmente saiba o pq do erro.
Um abraço!!!
Agora, no evento OnKeyDown do Formulário faça:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If((Key = vk_F10)Or(Key = vk_F12))Then Begin Label1.Caption := ´10´ End; end;
[color=blue:ef31f1c56c][b:ef31f1c56c]Obs:[/b:ef31f1c56c][/color:ef31f1c56c] Rodando por dentro do delphi, quando teclo F12, dá erro. Mas, quando rodo por fora do delphi funciona perfeitamente. [u:ef31f1c56c]Para a primeira citação, não sei qual é o problema.[/u:ef31f1c56c][/quote:ef31f1c56c]
Testei aqui e vi q dá erro mesmo, ele abre o debug e mostra o código asm, e não sei não, mas talvez é pq ele continua mantendo o controle da aplicação sei lá, e F12 é q faz ele alternar entre unit/form, só uma opnião q pode ser contestada por quem realmente saiba o pq do erro.
Um abraço!!!
GOSTEI 0
Bruno Belchior
02/09/2005
no evento [b:90151d335b]OnKeyDown[/b:90151d335b] do formulário O F12 Chama a janela de CPF devido ser o atalho dela na IDE... uma prova disso é que você pode desabilitar o Depurador integrado em [b:90151d335b]Tools -> Debugger Options[/b:90151d335b] e desmarque a opção [b:90151d335b]Integrated Debugging[/b:90151d335b]... não se esqueça de fazer como o colega [b:90151d335b]Rômulo Barros[/b:90151d335b] comentou[quote:90151d335b=´Rômulo Barros´]Configure a propriedade KeyPreview do seu formulário para true[/quote:90151d335b]
if Key = VK_F12 then ShowMessage(´F12´) else if Key = VK_F10 then ShowMessage(´F10´)
GOSTEI 0
Martins
02/09/2005
Tente utilizar assim:
procedure .....
begin
case key of (ou IF se preferir ...)
vk_F10: begin
{Chama Formulário}
Abort;
end;
vk_F12: begin
{Chama Formulário}
Abort;
end;
end;
end;
O seu código faz o mesmo que o do Romulo faz.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If((Key = vk_F10)Or(Key = vk_F12))Then Begin Label1.Caption := ´10´ End; end;
O erro não está no código, pq sem o Delphi ativo ele funfa blz, o problema é com o Delphi aberto, pode rodar qualquer prog pelo run do delphi e depois tecla F12 e vc vai ver como vai dar pau, continuo achando q tem algo a ver com a questão de que o aplicativo rodado pelo [b:3ea2abd96b]run[/b:3ea2abd96b], é como se fosse o dosshell, para quem programou em clipper e precisava acessar a tela do MS-DOS por dentro do sistema sabe do q falo, funcionava como se fosse um emulador, continua sendo só uma sugestão, seria bom se alguém aqui realmente soubesse do q se trata.
Um abraço!!!
GOSTEI 0
Bruno Belchior
02/09/2005
desculpem... leiam [b:211919038c]CPF[/b:211919038c] como [b:211919038c]CPU[/b:211919038c]... :oops:
GOSTEI 0
Martins
02/09/2005
[quote:e7c4f39917=´Bruno Belchior´]desculpem... leiam [b:e7c4f39917]CPF[/b:e7c4f39917] como [b:e7c4f39917]CPU[/b:e7c4f39917]... :oops:[/quote:e7c4f39917]
Blz Bruno, hehehe, eu quase acertei, :)
Um abraço galera!!!!
Blz Bruno, hehehe, eu quase acertei, :)
Um abraço galera!!!!
GOSTEI 0