FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Mandar llamar Manualmente Evento
Como mandar a llamar "Manualmente" el evento OnKeyDown, ya se que es una pregunta sencilla pero no le encuentro
|
#2
|
||||
|
||||
¿De que componente se trata? ¿Lo tienes "pegado" en un formulario y el evento tiene código? de ser así, lo puedes llamar como a cualquier método
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
oki
Estoy haciendo pruebas de como detectar el TAB dependiendo de que componente tenga el control en ese momento, ahora todo bien, pero, necesito llamar un evento por ejemplo del OnKeyDown, porque aqui hago las validaciones de todos los componentes(Edit's, bdEdit's, MaskEdit's, dbGrid) que tengo en un formulario para cachar el TAB y hacer que sea un ENTER, hago esto, porque estoy llamando MANUALMENTE el OnExit en el OnKeyDown de cada componente, tengo el siguiente código que hace esto:
Código:
Private procedure TfFacturas.CMDialogKey(var Message: TCMDialogKey); Implementation procedure TfFacturas.CMDialogKey(var Message: TCMDialogKey); begin // Comprobar estado if GetKeyState(VK_MENU) >= 0 then begin with Message do begin // Segun la tecla case CharCode of VK_TAB:begin if ActiveControl.Name='edSerie' then begin if length(edSerie.text)=2 then edSerieExit(sender) else edSerie.SetFocus; end else if ActiveControl.Name='edFolio' then begin edFolioExit(sender) end else if ActiveControl.Name='edNumCli' then begin if length(edNumCli.text)>0 then edNumCliExit(sender) else edNumCli.SetFocus; end else if ActiveControl.Name='maFecEmision' then begin bdTipoPago.SetFocus; end else if ActiveControl.Name='maFecVenci' then begin bdOrdenCompra.SetFocus; end else if ActiveControl.Name='bdOrdenCompra' then bdIvA.SetFocus else if ActiveControl.Name='edVendedor' then if edVendedor.text<>'' then begin edVendedorExit(Sender); gridFac.SetFocus; end else edVendedor.SetFocus; end; //end..VK_TAB end; // end..case end; // end..with end; // end..if // Método padre para que salte al siguiente control,... inherited; end; Que puedo hacer???? de antemano Gracias. |
#4
|
||||
|
||||
Podrías hacerlo desde el formulario, utilizando la propiedad KeyPreview en true, para que el TForm reciba el evento antes que los controles, entonces podrías programar solo el evento de tu formulario.
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: 14-09-2004 a las 21:09:52. |
#5
|
||||
|
||||
oki
Ya lo tengo asi, tengo la propiedad KeyPreview=true, y lo mando a llamar desde el formulario, dentro del mismo procedimiento que le mencione arriba, pero no me funciona.
Última edición por AGAG4 fecha: 14-09-2004 a las 20:28:56. Razón: Corrección |
#6
|
||||
|
||||
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#7
|
||||
|
||||
oki
Quiero disparar el evento OnKeyDown al momento de presionar el TAB dentro del procedimiento que le mencione arriba.
|
|
|
|