funcão que retorna uma constante.

Delphi

08/08/2005

Bom Dia.
É Possivel uma função retornar as teclas (vk_f1,vk_f2 etc..) sabendo o itemindex de um combobox.

Por exemplo:

cmbteste.itemindex = 0 a função deverá retornar vk_f1.
cmbteste.itemindex = 1 deverá retornar vk_f2.
e assim por diante...

Tentei um pouco mas o itemindex é inteiro, com case não funcionou.
Por procedimento também não deu certo, só consegui no OnkeyDown do edit.

Mas assim fica complicado porque vou repetir muitas vezes isso.


Obrigado


Lynx

Lynx

Curtidas 0

Respostas

Lynx

Lynx

08/08/2005

da certo sim...

Segue abaixo o código

function TfrmPrincipal.AtalhoMenuCadastro() : Integer;
var tecla : integer;
begin
  case FrameMenuPreferencias.cmbAtalhoCadastro.ItemIndex of
    0:tecla:= VK_F1;
    1:tecla:= VK_F2;
    2:tecla:= VK_F3;
    3:tecla:= VK_F4;
    4:tecla:= VK_F5;
    5:tecla:= VK_F6;
    6:tecla:= VK_F7;
    7:tecla:= VK_F8;
    8:tecla:= VK_F9;
  end;
  Result:= tecla;
end;


e no onkeydown do edit
  if key = AtalhoMenuCadastro() then
    ShowMessage(´teste´);


valeu


GOSTEI 0
Massuda

Massuda

08/08/2005

Não entendi o que você quer fazer... se for para gerar um códigode tecla conforme seleciona num ComboBox, seria algo assim...
var
  Tecla: Word;
...
  Tecla := VK_F1 + CmbTeste.ItemIndex;
...
...mas não entendi o resto do seu post.


GOSTEI 0
Lynx

Lynx

08/08/2005

Bom Dia massuda, é que eu fiz um menu preferencias para o usuário escolher a tecla de atalho.

A Função ficou assim.
function TfrmPrincipal.AtalhoMenuCadastro(tipo : integer) : Integer;
var tecla : integer;
begin
  if tipo = 1 then
    begin
      case FrameMenuPreferencias.cmbAtalhoCadastro.ItemIndex of
        0:tecla:= VK_F1;
        1:tecla:= VK_F2;
        2:tecla:= VK_F3;
        3:tecla:= VK_F4;
        4:tecla:= VK_F5;
        5:tecla:= VK_F6;
        6:tecla:= VK_F7;
        7:tecla:= VK_F8;
        8:tecla:= VK_F9;
      end;
      Result:= tecla;
    end
  else if tipo = 2 then
    begin
      case FrameMenuPreferencias.cmbAtalhoPesquisa.ItemIndex of
        0:tecla:= VK_F1;
        1:tecla:= VK_F2;
        2:tecla:= VK_F3;
        3:tecla:= VK_F4;
        4:tecla:= VK_F5;
        5:tecla:= VK_F6;
        6:tecla:= VK_F7;
        7:tecla:= VK_F8;
        8:tecla:= VK_F9;
      end;
      Result:= tecla;
    end;
end;



no keydown dos edits eu faço if key = atalho(1 ou 0) , para chamar o form de acordo com a tecla de atalho que ele escolheu.


No menu preferencias, tem para escolher a tecla de F1 até F9, para cadastros e pesquisa, quando o usuário escolhe eu guardo o valor que ele escolheu em um arquivo .INI.


Quando abre o sistema eu leio o arquivo .ini e deixo o combobox na posição que o usuário definiu.

Resumindo

Está tudo funcionando perfeito, e o usuário pode escolher a tecla que ele quiser para abrir um novo form.


valeu :)


GOSTEI 0
POSTAR