GARANTIR DESCONTO

Fórum TECLAS DE ATALHO #374036

25/08/2009

0

OLá pessoal,

Utilizando o TAction, setei todos os botões com seus respectivos SHORTCUR,
no meu formulário modelo, mas os mesmos não estão funcionando...

Preciso ativa algo mais?

Tentei utilizar pelo OnKeyDown, mas como definiria se pressionado por exemplo, CTRL+(uma letra)????


Lenasi

Lenasi

Responder

Posts

25/08/2009

Leufmt

procedure Tform1.FormKeyDown(Sender:TObject; var Key: Word; Shift: TShifState);
begin
if key = vk_F1 then begin
{ instrucoes a serem executadas }
end;
end;
- OBSERVAÇÃO:
Não se esqueça de colocar a propriedade ´KeyPreview´ do formulário em ´True´.

Você também pode usar as variáveis VK_F1 até VK_F12 referentes as outras teclas de função.


Responder

Gostei + 0

25/08/2009

Lenasi

procedure Tform1.FormKeyDown(Sender:TObject; var Key: Word; Shift: TShifState); begin if key = vk_F1 then begin { instrucoes a serem executadas } end; end; - OBSERVAÇÃO: Não se esqueça de colocar a propriedade ´KeyPreview´ do formulário em ´True´. Você também pode usar as variáveis VK_F1 até VK_F12 referentes as outras teclas de função.


Caro amigo,

Mas, precisaria com as letras além das teclas de funções..
E também saber o porque as já definidas pela propriedade SHURTCUT não funcionou...


Responder

Gostei + 0

25/08/2009

Emerson Nascimento

tente assim:
procedure TFormX.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) then
    Label1.Caption := ´[CTRL] + ´+Chr(Key)
  else
  if (Shift = [ssAlt]) then
    Label1.Caption := ´[ALT] + ´+Chr(Key)
  else
  if (Shift = [ssShift]) then
    Label1.Caption := ´[SHIFT] + ´+Chr(Key)
  else
  if (Shift = [ssCtrl, ssAlt]) then
    Label1.Caption := ´[CTRL] + [ALT] + ´+Chr(Key)
  else
  if (Shift = [ssShift, ssAlt]) then
    Label1.Caption := ´[SHIFT] + [ALT] + ´+Chr(Key)
  else
  if (Shift = [ssCtrl, ssShift]) then
    Label1.Caption := ´[CTRL] + [SHIFT] + ´+Chr(Key)
  else
  if (Shift = [ssCtrl, ssShift, ssAlt]) then
    Label1.Caption := ´[CTRL] + [ALT] + [SHIFT] + ´+Chr(Key);

  // avaliando os ´atalhos´...
  if (Shift = [ssCtrl]) and (Chr(Key)=´A´) then
    Label1.Caption := ´o atalho [CTRL] + A NÃO FOI DEFINIDO´
  else
  if (Shift = [ssCtrl]) and (Chr(Key)=´B´) then
    ShowMessage(´[CTRL] + B chama esta mensagem´);
  if (Shift = [ssCtrl, ssAlt]) and (Chr(Key)=´C´) then
    ShowMessage(´[CTRL] + [ALT] + C chama esta mensagem´);
end;



Responder

Gostei + 0

25/08/2009

Lenasi

tente assim:
procedure TFormX.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) then
    Label1.Caption := ´[CTRL] + ´+Chr(Key)
  else
  if (Shift = [ssAlt]) then
    Label1.Caption := ´[ALT] + ´+Chr(Key)
  else
  if (Shift = [ssShift]) then
    Label1.Caption := ´[SHIFT] + ´+Chr(Key)
  else
  if (Shift = [ssCtrl, ssAlt]) then
    Label1.Caption := ´[CTRL] + [ALT] + ´+Chr(Key)
  else
  if (Shift = [ssShift, ssAlt]) then
    Label1.Caption := ´[SHIFT] + [ALT] + ´+Chr(Key)
  else
  if (Shift = [ssCtrl, ssShift]) then
    Label1.Caption := ´[CTRL] + [SHIFT] + ´+Chr(Key)
  else
  if (Shift = [ssCtrl, ssShift, ssAlt]) then
    Label1.Caption := ´[CTRL] + [ALT] + [SHIFT] + ´+Chr(Key);

  // avaliando os ´atalhos´...
  if (Shift = [ssCtrl]) and (Chr(Key)=´A´) then
    Label1.Caption := ´o atalho [CTRL] + A NÃO FOI DEFINIDO´
  else
  if (Shift = [ssCtrl]) and (Chr(Key)=´B´) then
    ShowMessage(´[CTRL] + B chama esta mensagem´);
  if (Shift = [ssCtrl, ssAlt]) and (Chr(Key)=´C´) then
    ShowMessage(´[CTRL] + [ALT] + C chama esta mensagem´);
end;



PERFEITO AMIGO. DEU CERTO.
MAIS UM RESOLVIDO....
MAIS UM ADQUIRIDO COMO APRENDIZADO...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar