GARANTIR DESCONTO

Fórum Função para que sirva pra todos os forms #343594

24/07/2007

0

Estou precisando de criar uma função global para que sirva para todos os forms.

Ex.: Tenho um sistema que usa uma calculadora que uso o seguinte comando para abri-la.


if Key = VK_F10 then
begin
FrmCalculadora.Show
Key :=0;
end;

Só que tenho que fazer isso para cada form do sistema. Gostaria de saber se tem alguma forma de fazer uma função só que sirva para todos os forms, para quando eu pressionar F10 em qualquer form. abrir a calculadora.


Visualdesigner

Visualdesigner

Responder

Posts

24/07/2007

Vitor Alcantara

No caso que você falou você poderia fazer isso de vários modos
Um modo simples mais eficaz seria utilizando um TMainMenu e colocalo em seu form principal dai você colocar o botão de atalho (a propriedade ShortCut) do item com a combinação que você escolher, isso deverá servir para todos os forms que forem inicializados sem ShowModal.

procedure TFormPrincipal.Calculadora1Click(Sender: TObject);
begin
FrmCalculadora.Show;
end;


Responder

Gostei + 0

24/07/2007

Vitor Alcantara

Outro método que serviria até para os forms inicializados com ShowModal seria utilizando um TApplicationEvents (Palheta Additional) e definir o método OnMessage com esse código.

ApplicationEvents1
procedure TFormPrincipal.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  case Msg.Message of
   WM_KEYDOWN :
    begin
      //Fica escutando o evento de precionamento de teclas
       if Msg.wParam = VK_F10 then //Verifica se a tecla F10 foi apertada
       begin
         //Executa o form FrmCalculadora
         FrmCalculadora.Show;
       end;
    end ;
  end;
end;



Responder

Gostei + 0

25/07/2007

Visualdesigner

Não funcionou não. Quando pressiono o F10 nada acontece.


Responder

Gostei + 0

25/07/2007

Vitor Alcantara

Tenta isso:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
   case Msg.Message of
      WM_KEYDOWN, WM_SYSCHAR, WM_SYSKEYDOWN :
      begin     
         if Msg.wParam = VK_F10 then
         SHOWMESSAGE(´CALCULADORA´);
      end ;
   end ;
end;



Responder

Gostei + 0

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

Aceitar