Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2025
pantomima1975 pantomima1975 is offline
Registrado
 
Registrado: may 2025
Posts: 2
Poder: 0
pantomima1975 Va por buen camino
tecla común a una aplicación

Buenas a todos:


Es mi primer mensaje con lo que si no lo hago bien, perdón por adelantado.
He buscado en los foros y no he encontrado lo que quiero preguntar.


En Delphi X3, ¿existe alguna manera de hacer que pulsando una tecla (o una combinación, como un Ctrl + A, por ejemplo) en cualquier formulario de la aplicación se abra otro formulario sin tener que hacerlo en todos y cada uno de los formularios de la aplicación?


Sé que puedo abrir un formulario pulsando una tecla, con el KeyDown, pero lo que necesito es mostrar un formulario en cualquier momento, sin tener que escribir el mismo código del KeyDown en cada formulario.


Espero haberme explicado.


Gracias!
Responder Con Cita
  #2  
Antiguo 23-05-2025
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Podrías escribir el código en un formulario base y que luego el resto de formularios hereden de este.

Código Delphi [-]
type
  TFMBase = class(TForm)
  [..]
  procedure OnKeydown(...);
  [..]
end;

Código Delphi [-]
type
  TFMOtroFormulario = class(TFMBase)
  [..]
end;
Responder Con Cita
  #3  
Antiguo 23-05-2025
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Otra opción es crear una función en un formulario principal y desde el resto solo llamarla dentro el OnkeyDown

Código Delphi [-]
type
  TFMBase = class(TForm)
  [..]
  public
  procedure KeyDownGenerico(Sender: TObject; var Key: Word; Shift: TShiftState);;
  [..]
end;

procedure TFMBase.KeyDownGenerico(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if (CTRL + A) then
     ...
end;

Código Delphi [-]
uses UFMBase;

type
  TFMOtroFormulario = class(TForm)
  [..]
  public
  procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  [..]
end;

procedure TFMOtroFormulario.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   TFMBase.KeyDownGenerico(Sender, Key, Shift);
end;

Última edición por duilioisola fecha: 23-05-2025 a las 14:35:20.
Responder Con Cita
  #4  
Antiguo 23-05-2025
Garada Garada is offline
Miembro
 
Registrado: jul 2004
Posts: 90
Poder: 22
Garada Va por buen camino
Puedes usar un componente TApplicationEvents en el formulario principal de la aplicación.
Este componente informa de cambios a nivel de aplicación y entre ellos los mensajes que recibe.

Usa el evento OnMessage y capturas el evento WM_KEYUP

ejempo:

Código Delphi [-]
procedure TForm1.appevnt1Message(var Msg: TMsg; var Handled: Boolean);
begin
  Handled := False;

  if (Msg.Message >= WM_KEYFIRST) and (Msg.Message <= WM_KEYLAST) then // capturamos todos los eventos de teclado para desactivar otros usos
  if (GetKeyState(VK_CONTROL) < 0) and (Msg.wParam = Ord('A')) then
  begin
    Handled := True; // el mensaje ya está gestionado

    if (Msg.message = WM_KEYUP) or (Msg.message = WM_SYSKEYUP) then // sólo hacemos caso cuando levante la tecla, a gusto
      ShowMessage('Hola mundo');
  end;
end;
Responder Con Cita
  #5  
Antiguo 26-05-2025
pantomima1975 pantomima1975 is offline
Registrado
 
Registrado: may 2025
Posts: 2
Poder: 0
pantomima1975 Va por buen camino
Muchas gracias por las respuestas!
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
Saber qué tecla presionó el usuario si mi aplicación no tiene el foco del mismo DSK25 C++ Builder 2 01-05-2014 04:20:23
capturar una tecla en la aplicación 2-D@monic Varios 2 04-08-2008 20:01:26
saber que tecla se presiona despues de X tecla amadis OOP 9 04-01-2008 13:16:35
Cambiar la tecla TAB por la tecla ENTER al pasar de controles dec Trucos 0 30-06-2006 13:43:03
Controlar pulsacion de una tecla desde toda la aplicacion Sick boy OOP 5 21-05-2004 17:30:48


La franja horaria es GMT +2. Ahora son las 15:07:37.


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