Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2007
Avatar de Lonidas
Lonidas Lonidas is offline
Miembro
 
Registrado: abr 2006
Posts: 35
Poder: 0
Lonidas Va por buen camino
Thumbs up yo de nuevo

me pasaron este codigo y solucione lo del esc+f4

if (HiWord(GetKeyState(VK_escape)) <> 0)and(HiWord(GetKeyState(VK_f4)) <> 0) then


pero aun no puedo solucionar lo de evitar la accion del escape osea que no me cancele o borre nada
Responder Con Cita
  #2  
Antiguo 14-08-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Como has encontrado la solución, lo que procede es dejarlo, no borrarlo, así otros usuarios tendrán acceso a esa solución.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 14-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
A ver si esto te resulta útil:


Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ApplicationEvents1: TApplicationEvents;
    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  lEscape : Boolean;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;  var Handled: Boolean);
begin

 Handled := False;
      if  (Msg.Message = WM_KEYDOWN) then
      BEGIN
        if Msg.wParam = VK_ESCAPE then
            Begin
            lEscape := True;
            Handled := True ;
            Exit;
            End;
        if (Msg.wParam = VK_F4 ) And lEscape then
            Begin
            lEscape := False;
            Handled := True ;
            ShowMessage('Se ha pulsado la combinación correcta');
            End;
      END;



end;

end.


Código:
object Form1: TForm1
  Left = 359
  Top = 278
  Width = 299
  Height = 190
  Caption = 'Demostración de pulsacion de teclas'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object ApplicationEvents1: TApplicationEvents
    OnMessage = ApplicationEvents1Message
    Left = 96
    Top = 48
  end
end
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #4  
Antiguo 14-08-2007
Avatar de Lonidas
Lonidas Lonidas is offline
Miembro
 
Registrado: abr 2006
Posts: 35
Poder: 0
Lonidas Va por buen camino
Thumbs up

interesante aporte Ardilla lo voy a probar
Responder Con Cita
  #5  
Antiguo 14-08-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Date cuenta, que el procedimiento en sí, no comprueba que ambas estén pulsadas, sino que comprueba que la secuencia sea precisamente esa.

Se puede optimizar un poco para comprobar que a sido correcta la secuencia. Es decir, tal cual está, se puede pulsar ESC, A y F4 y saltaría, por lo que cambiando el estado de la variable en el caso de que no sea esa la secuencia, se vuelve a "iniciar" la variable.

Código Delphi [-]
      if  (Msg.Message = WM_KEYDOWN) then
      BEGIN
        if Msg.wParam = VK_ESCAPE then
            Begin
            lEscape := True;
            Handled := True ;
            Exit;
            End;
        if (Msg.wParam = VK_F4 ) And lEscape then
            Begin
            lEscape := False;
            Handled := True ;
            ShowMessage('Se ha pulsado la combinación correcta');
            End;
            lEscape := False;
      END;


También se podría comprobar la secuencia distinta por ejemplo F4-ESC, solamente hay que jugar con las variables........
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
capturar error gulder Conexión con bases de datos 1 09-06-2006 18:51:20
Capturar error silviodp Conexión con bases de datos 3 01-07-2005 11:59:36
Capturar Tecla Sick boy OOP 0 25-09-2004 11:27:59
Capturar pantalla pablo Varios 1 07-09-2004 20:15:10
Capturar Sonido cancerbero Varios 0 14-08-2004 01:15:47


La franja horaria es GMT +2. Ahora son las 06:10:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi