Como desabilitar tecla escolhida no combobox

Delphi

01/07/2014

Olá pessoal, estou há um bom tempo procurando a solução mas não encontro, a minha dúvida é a seguinte: Preciso desabilitar algumas teclas através da escolha do usuário pelo combobox. Sei que posso utilizar o codigo do teclado virtual, mas não estou conseguindo entender como colocar no código, alguém tem ideia de como fazer?

Estava tentando assim:

procedure TForm1.FlatButton1Click(Sender: TObject);
begin
if FlatComboBox1.Items[FlatComboBox1.ItemIndex] = 'Delete' then
ShowMessage('A tecla "Delete" será desabilitada.');
VK_CLEAR = 0; (é aqui que me perco)
end;
end.
Keisse Brandao

Keisse Brandao

Curtidas 0

Respostas

Ricardo

Ricardo

01/07/2014

Tem que colocar a instrução no evento OnkeyDown ou OnKeyPress e VK_CLEAR := 0, você colocou VK_CLEAR = 0.
GOSTEI 0
Keisse Brandao

Keisse Brandao

01/07/2014

Mas Ricardo, o usuário não vai pressionar a tecla, ele só vai escolher no combobox... Mesmo fazendo assim como vc falou não dá certo, pois aparece a mensagem de erro, "The left side cannot be assigned to"
GOSTEI 0
Keisse Brandao

Keisse Brandao

01/07/2014

Tenho que adicionar alguma biblioteca?
GOSTEI 0
Thiago Irrazabal

Thiago Irrazabal

01/07/2014

Boa noite, veja se isso resolve teu problema... primeiramente no teu formulário deixe o KeyPreview como TRUE, depois declare essa váriavel no private do teu formulário

vKey: Word;

Sem seguida declare essa procedure aqui no private também:
procedure KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

CTRL + SHIFT + C para criar e coloque esse código dentro:
if Key = vKey then
    Key := 0;

Aqui tu pode fazer outras coisas como mostrar a mensagem quando a tecla for pressionada e dizer que ela está "inativa"...


Agora no OnChange do teu ComboBox tu coloca o seguinte código:
  case ComboBox1.ItemIndex of
    0: vKey := VK_F1;
    1: vKey := VK_F2;
    2: vKey := VK_F3;
    3: vKey := VK_F4;
    4: vKey := VK_F5;
    5: vKey := VK_F6;
  end;

  TForm(Form1).OnKeyDown := KeyDown;

Onde Form1 tu substitui pelo nome do teu formulário, e o case do itemindex tu substitui pelas teclas que tu colocou nos items do combobox, espero que ajude.



Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
POSTAR