Ir para conteúdo
Fórum Script Brasil
  • 0

Como Bloquear Atalho Quando...


rfp

Pergunta

Minha dúvida é a seguinte:

Se no caption de um Button for colocado & antes de alguma letra,

essa letra passa a ser o atalho desse botão e para acessar esse

atalho é só teclar "ALT + a letra", então mas o problema é

que se no mesmo Form for utilizado esse atalho no botão e utilizar

um CheckBox ou um RadioButton, quando o foco estiver encima dos

CheckBox ou RadioButton, o atalho funciona sem precisar precionar o

ALT, ou seja é só teclar a letra que está como atalho sem o ALT, e

esse é meu problema, pois por exemplo se eu tiver um botão EXCLUIR

no Form, o usuário pode excluir sem querer, somente acionando 1 tecla.

Espero que possam me ajudar... wink.gif

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá,

Uma solução pra isso (não muito agradavel), e fazer o seguinte, um exemplo usando um CheckBox e um Buttom - &Excluir (Tecla de atalho na letra E).

No OnEnter do CheckBox, você tira o '&' do Caption do Button e no OnExit retorna, tipo:

procedure TForm1.CheckBox1Enter(Sender: TObject);
begin
  Button2.Caption := 'Excluir';
end;

procedure TForm1.CheckBox1Exit(Sender: TObject);
begin
  Button2.Caption := '&Excluir';
end;

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente essa é uma forma, mas eu já tinha pensado nisso,

porém se for feito dessa forma no momento que o foco estiver

no CheckBox as teclas de atalho deixaram de funcionar, e não

é isso que eu quero, eu gostaria de que nos CheckBox e RadioButton

as teclas de atalho funcionassem da mesma forma que funcionam nos

Edits por exemplo, ou seja precisando teclar ALT + letra...

Mas mesmo assim valeu pela idéia...

Vou continuar no aguardo, se alguém puder me ajudar...

Editado por Progr'amador
Link para o comentário
Compartilhar em outros sites

  • 0

Bom então faz assim,

Usa o código que te falei e mas esse, agora no OnKeyDown do CheckBox1:

procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Shift = [ssAlt]) then
  case Key of
    69: Button2Click(Sender);  // Alt+E
  end;
end;
ae você pode incluir quantos comandos você quizer, tipo:
procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Shift = [ssAlt]) then
  case Key of
    65: Button1Click(Sender);  // Alt+A
    69: Button2Click(Sender);  // Alt+E
    67: Button3Click(Sender);  // Alt+C
    83: Button4Click(Sender);  // Alt+S
  end;
end;

esses numeros (65, 69, 67, 83) representa o código ASCII das respectivas teclas (A, E, C, S).

Abs. Progr'amador. wink.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...