Ver Mensaje Individual
  #3  
Antiguo 23-01-2007
chico_bds chico_bds is offline
Miembro
 
Registrado: ene 2007
Posts: 50
Reputación: 18
chico_bds Va por buen camino
Sobre la respuesta:

HOla:

Ya ese post lo habia visto pero me da un error osea este es mi codigo:

-----------------------------------------------------------------------------

Código Delphi [-]
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  protected
     procedure WndProc(var Msg: TMessage); override;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

procedure TForm2.WndProc(var Msg: TMessage);

begin
  if msg.msg = wm_hotkey then
  begin
// esto es lo interesante, al registrar una combinación
// le damos un número entero, partiendo de cero y sumandole uno 
// si vamos a registrar varias teclas rápidas.
// Pues ese número  es el que llega en msg.WParam

     case msg.WParam of
       0: Form2.Show; // se pulsó la tecla F10
             1: Application.Terminate;// se pulsó la tecla F11
          end;

{$R *.dfm}

  end;
end;

procedure TForm2.DecodeHotKey(shortcut: Tshortcut; var key: Word; var modif: Integer);
var
  comb:     String;
   shiftkey: TshiftState;
begin
  modif := 0;
  shortcuttokey(shortcut, key, shiftkey);
  comb := shortcuttotext(shortcut);
  if pos('Shift', comb) <> 0 then
     inc(modif, 4);
  if pos('Ctrl', comb) <> 0 then
     inc(modif, 2);
  if pos('Alt', comb) <> 0 then
     inc(modif, 1);
end;

procedure FormCreate;
var teclappal :word;
 modificadores:integer;

begin
// suponemos que en Hotkey1.Hotkey es la tecla F10
    decodehotkey(hotkey1.hotkey, teclappal, modificadores);
    registerhotkey(self.Handle, 0, modificadores, teclappal);
// EL PARAMETRO CON UN CERO, NOS SIRVE PARA IDENTIFICAR ESTE HOTKEY


// suponemos que en Hotkey2.Hotkey es la tecla F11
    decodehotkey(hotkey2.hotkey, teclappal, modificadores);
    registerhotkey(self.Handle, 1, modificadores, teclappal);
// EL PARAMETRO CON UN UNO, NOS SIRVE PARA IDENTIFICAR ESTE HOTKEY
end;

procedure FormClose;
begin
  unregisterhotkey(self.Handle, 0);
  unregisterhotkey(self.Handle, 1);
end;

end.

Mi pregunta es me falta un libreria o un componente?

Si pudieran conlgarme un ejemplo sencillo se los agradeceria mucho, ya que no puedo hacer busquedas en internet, porque solo tengo acceso a este forum y al email.

Saludos y desde ya muchas gracias
Responder Con Cita