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 01-08-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Forma de escribir las teclas presionadas

Hay una forma de escribir los nombres de algunas teclas, lo necesito para el evento onkeypress, en donde pondría
if (key = #13) then (#13 equivale a Enter)
Sabe alguno cual sería el número de la tecla Tab?

Yanina Genia
Responder Con Cita
  #2  
Antiguo 01-08-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Entendí mal tu pregunta, simplemente te recomiendo utilizar las constantes a las que hace referencia lucasarts_18, definidas en la unit Windows:
Código Delphi [-]
  { Virtual Keys, Standard Set }
  ...   
  VK_TAB = 9;
  ...   
  VK_RETURN = 13;
  ...


Cita:
Empezado por delphi.com.ar.... Respuesta errónea
A ver si te gusta:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMKeyDown(var Message: TWMKeyDown);
var
  PBuff: PChar;
begin
  PBuff := StrAlloc(MAX_PATH);
  try
    GetKeyNameText(Message.KeyData, PBuff, MAX_PATH);
    Caption := PBuff;
  finally
    StrDispose(PBuff);
  end;
end;

end.

http://www.clubdelphi.com/foros/show...36&postcount=2
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 01-08-2005 a las 23:05:58.
Responder Con Cita
  #3  
Antiguo 01-08-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

En la ayuda de delphi salen todas las teclas definidas como una constante.
Busca por constant key o algo similar.

Saludos.
Responder Con Cita
  #4  
Antiguo 01-08-2005
RER RER is offline
No confirmado
 
Registrado: ago 2005
Posts: 9
Poder: 0
RER Va por buen camino
hola: Intenta con #9
Responder Con Cita
  #5  
Antiguo 02-08-2005
Avatar de jorge1987
jorge1987 jorge1987 is offline
Miembro
 
Registrado: may 2005
Ubicación: Buenos Aires
Posts: 244
Poder: 19
jorge1987 Va por buen camino
Yo cuando programaba juegos, necesite saber como eran los botones, asi que un amigo me recomendo algo, y fue asi de sencillo, a un label en un formulario le pongo de caption el en el evento on key press lblteclas.caption := key, alguna duda solo pregunten.
Saludos

PD: este era mi programa:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label4.Caption := IntToStr(key);
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label5.Caption := IntToStr(key);
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
Label6.Caption := Key;
end;
Responder Con Cita
  #6  
Antiguo 02-08-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Hola...

Es como si no tomara la tecla Tab como una tecla, ni siquiera entra en el evento onKeyPress!! Alguno sabe que pasa?
Responder Con Cita
  #7  
Antiguo 02-08-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Mmm... Podrías darnos algo mas de info, por ejemplo: ¿El KeyPress de que control es el que estas capturando?... ¿Esta sobre un TForm standard?... ¿Este no tiene KeyPreview = True?...

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 02-08-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Si...

Es un form que no tiene nada raro, un par de campos a completar, pero en tiempo de ejecución tengo que cambiarlos de lugar, dependiendo desde donde se acceda. Al hacer esto, si se presiona la tecla "Tab", el cursor se va moviendo en el orden en que los edit fueron creados, o sea, del campo 1 se va al 3, luego al 4 y luego al 2.
Quiero evitar usar el setfocus en el evento "OnExit" de cada edit porque si por ejemplo estoy en el campo 3 y hago click con el mouse sobre el campo 1, se mueve al 4!!
Por eso para facilitarme la vida pensé usar el onkeypress para que no se confunda con el onClick y con el onExit (un quilombo).
Ahora, la cosa anda con el key = #13 (si el usuario toca Enter, OnKeyPress), pero no anda para la tecla Tab, es como si no la tomaba como tecla presionada.
Responder Con Cita
  #9  
Antiguo 02-08-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por YaninaGenia
Es un form que no tiene nada raro, un par de campos a completar, pero en tiempo de ejecución tengo que cambiarlos de lugar, dependiendo desde donde se acceda. Al hacer esto, si se presiona la tecla "Tab", el cursor se va moviendo en el orden en que los edit fueron creados, o sea, del campo 1 se va al 3, luego al 4 y luego al 2.
Cuando utilizas tab, el foco pasa de control en control no necesariamente por el orden de creación, sino por el TabOrder (orden de tabulación) que por defecto es igual al orden de creación de los componentes que aceptan foco.
Si te fijas en los componentes, los que aceptan foco tienen la propiedad TabOrder que es el índice de tabulación y TabStop que indica si acepta o no foco de la tabulación. Si querés ordenarlo en forma sencilla, haces click derecho sobre el form o sobre un contenedor, te sale un menú desplegable donde tenes la opción "Tab Order" y ahí podes mover el orden de tabulación en forma visual. Es bueno tener en cuenta que cada contenedor (control que puede contener visualmente otros controles) tiene su propio TabOrder.



Cita:
Empezado por YaninaGenia
Por eso para facilitarme la vida pensé usar el onkeypress para que no se confunda con el onClick y con el onExit (un quilombo).
Ahora, la cosa anda con el key = #13 (si el usuario toca Enter, OnKeyPress), pero no anda para la tecla Tab, es como si no la tomaba como tecla presionada.
En el KeyPress no vas a poder obtener el Tab:
Código Delphi [-]
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_TAB) and ((Shift = []) or (Shift = [ssShift])) then
    Caption := 'KeyUp' + IntToStr(GetTickCount);
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 02-08-2005
YaninaGenia YaninaGenia is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires
Posts: 95
Poder: 19
YaninaGenia Va por buen camino
Talking Anduvo!!

Gracias Delphi, anduvo bien lo de TabOrder, era lo que me tocaba aprender hoy!!

Yanina Genia
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


La franja horaria es GMT +2. Ahora son las 11:35:34.


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