![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Otra solución más siguiendo el ejemplo de egostar
LLegados a este punto, ahora en los demás TEdits, en su evento KeyUp elige el Edit1Keyup, por tanto todos los Tedits compartiran el mismo evento. Si estas en el edit1, el parámetro Sender será el Edit1, si estas en el Edit32 pues el Sender será el Edit32 ... vamos... el objeto que desencadena el evento. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#2
|
|||
|
|||
|
Yo veo otras dos soluciones a este problema.
La primera es utilizar el evento OnKeyUp de cada Edit y usar el código que quieras para cada uno. La otra es usar el siguiente código.
Espero ayude y si alguien sabe de otra solución mas elegante será bienvenida. Saludos Última edición por egostar fecha: 04-04-2006 a las 17:55:59. |
|
#3
|
|||
|
|||
|
Hola,
Gracias Egostar mira que casualidad que algo asi hice para solucionar el problema lo unico que lo hice con el foco, como lo plantee anteriormente que queria saber como capturar en objeto se encontraba mi foco y inventando lo encontre!!!!!!!! el codigo es el siguiente: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure FormCreate(Sender: TObject); private procedure CMDialogKey(Var Msg: TWMKey) ; message CM_DIALOGKEY; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation procedure TForm1.CMDialogKey(Var Msg: TWMKEY) ; begin if (ActiveControl is TEdit) and (Edit1.Focused) and (Msg.Charcode = VK_TAB) then begin ShowMessage('La Tecla TAB en Edit 1 esta Presionada?') ; inherited; end else if (ActiveControl is TEdit) and (Edit2.Focused) and (Msg.Charcode = VK_TAB) then begin ShowMessage('La Tecla TAB en Edit 2 esta Presionada?') ; inherited; end; end; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin end; end. El unico problema que le veo a este forma de resolverlo es que si yo quiero que el comportamiento con la tecla Tab para otros Tedit que yo no quiera que hagan ninguna accion sino que sean normales como un TEdit sin alteracion, no se puede tendria que ponerle oblligatoriamente una accion a cada uno. Tu mencionabas dos Soluciones mas una que es similar a la que estoy exponiendo aqui y la otra como seria?????, Es de evaluar talvez me convenga mas la otra. Gracias.. FORO ---Las Caidas te Hacen Aprender a Caminar-- |
|
#4
|
|||
|
|||
|
Cita:
Saludos |
|
#5
|
||||
|
||||
|
JELIRM, creo que con 72 mensajes en el foro ya no eres un novato y deberías utilizar los TAGs de DELPHI cuando añadas código a los mensajes. Que esto lo hagan los nuevos pase, pero los veteranos...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
|||
|
|||
|
gracias por el regañito, pues fijate que nunca lo he hecho pero te prometo que a la proxima lo haré!!!!!
|
|
#7
|
||||
|
||||
|
Hola todos, he retomado este antiguo debate porque no logro entender...
Sea un Form que contiene varios Edits (u otros componentes que puedan enfocarse vía TAB). La idea: En Edit1 quiero mostrar el código de la tecla presionada, para ello tengo los dos procedures de dicho Edit así: ... mis rutinas funcionan bien y reconocen todas las teclas EXCEPTO la tecla TAB. Intento reconocerla vía KeyDown (VK_TAB) o en KeyPress(#9) y siempre por siempre se enfoca el siguiente componente (Edit2 por ejemplo). Lo que quiero: Es que me reconozca la pulsación de TAB y me muestre en Edit1 su código (9) y que termine, así como ocurre al presionar un número por ejemplo. He intentado lo mencionado arriba (CMDialogKey) y me muestra el mensaje al presionar TAB, pero mi foco sigue moviéndose, quiero que se quede quieto. Espero sus sabios comentarios ![]() Gracias - Gaak -
__________________
L'Gaak dice |
|
#8
|
||||
|
||||
|
Antes que me regañen, ya conseguí la solución:
... ahora, al lado de VK_TAB intenté colocarle VK_LWIN o VK_CAPITAL y no funciona para ellos ... en fin ya conseguí lo que quería, pero si alguien puede explicar como detener (así como TAB) las teclas como CAPS, INICIO u otros, bienvenido sea.Gracias de todas maneras. - Gaak -
__________________
L'Gaak dice |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Hacer una pausa fuera del evento OnTimer y sin usar Sleep | DarkByte | Varios | 9 | 28-06-2007 05:08:00 |
| en que evento del dbgrid puedo hacer un operacion matematica . . . | Shidalis | Varios | 13 | 26-08-2005 23:25:06 |
| como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda | Shidalis | OOP | 2 | 02-08-2005 13:05:35 |
| Pasar el valor de un TEdit dentro de un StringGrid a otro TEdit que está fuera | atirado | Varios | 4 | 11-09-2004 20:13:48 |
| TEdit | RoyTan | Varios | 5 | 26-11-2003 22:12:33 |
|