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 20-03-2013
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
Llamar a Evento OnKeyUp

Hola, en mi aplicación necesito llamar a la función OnKeyUp de un TLabelEdit desde el evento OnActivate del Formulario.

El caso es el siguiente, tengo varios TLabelEdit en mi formulario a los cuales les asigno un valor en el OnActivate del Formulario. Una vez rellenados estos valores necesito que los TLabelEdit ejecuten el evento OnKeyUp el cual realiza unos cálculos pero no consigo ejecutar la llamada.

He probado de la siguiente forma:

Código Delphi [-]
letra:=word('a');
LabelEdit1.OnKeyUp(nil,letra,ssShift);

Esto me lanza el error "Incompatible types: TShifState and Enumeration".

Estoy casi seguro que el error lo tengo en el tercer parámetro del evento pero no se que debo poner ahí para que funcione.

Agradezco cualquier ejemplo de llamada a este evento que me podáis proporcionar.

Muchas gracias.
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #2  
Antiguo 20-03-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Prueba, de momento, con algo así:

Código Delphi [-]
LabelEdit1.OnKeyUp( nil, letra, [ ssShift ] );
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 20-03-2013
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
He decido cambiar el evento OnKeyUp por el OnChange y solucioné mi problema.
De todas formas si alguién me puede responder a mi pregunta anterior lo agradecería, nunca está de más aprender algo nuevo.

Gracias a todos nuevamente.
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #4  
Antiguo 20-03-2013
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
Muchas gracias DEC, efectivamente ha funcionado.

Hoy ya he aprendido algo nuevo. XD
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #5  
Antiguo 20-03-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
De todas formas, no es buena idea eso de forzar eventos, así nos engañamos. Si se quiere ejecutar el mismo código, lo mejor es tener un procedimiento que espere la mismas variables que espera el evento y poner ahí el código. Una vez hecho esto, el evento llamaría al procedimiento que hemos hecho al uso.

Al menos, bajo mi opinión, aunque el resultado sea el mismo, a mi manera es más claro. Llamando a los eventos directamente, puede haber un momento en el futuro que no me acuerde de que llamaba al evento y volverme loco pensando por qué pasa por un sitio que no debería pasar.
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #6  
Antiguo 20-03-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por ozsWizzard Ver Mensaje
De todas formas, no es buena idea eso de forzar eventos, así nos engañamos. Si se quiere ejecutar el mismo código, lo mejor es tener un procedimiento que espere la mismas variables que espera el evento y poner ahí el código. Una vez hecho esto, el evento llamaría al procedimiento que hemos hecho al uso.

Al menos, bajo mi opinión, aunque el resultado sea el mismo, a mi manera es más claro. Llamando a los eventos directamente, puede haber un momento en el futuro que no me acuerde de que llamaba al evento y volverme loco pensando por qué pasa por un sitio que no debería pasar.
Por eso digo...

Cita:
Prueba, de momento, con algo así:
Código Delphi [-]
LabelEdit1.OnKeyUp( nil, letra, [ ssShift ] );
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 20-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

También hay otra opción para prescindir de un procedimiento adicional, algo así como un "tiro libre indirecto"...
Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
begin
  with LabeledEdit1 do
  begin
    Perform(WM_LBUTTONDOWN, MK_LBUTTON, 0);
    Perform(WM_LBUTTONUP, MK_LBUTTON, 0);
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 20-03-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola,



Por eso digo...
Buen matiz ese
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #9  
Antiguo 20-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Comparto el parecer de ozsWizzard y dec:

Cita:
Empezado por dec Ver Mensaje
Es posible "llamar" a un evento como a cualquier otro procedimiento, empero, no es una práctica recomendada. Tal vez deberías plantearte sacar del evento el código que se encarga de hacer lo que te interesa, y situarlo en un procedimiento aparte. Entonces, podrías llamar a dicho procedimiento cuando te fuera menester, bien en el evento a que haces referencia, bien desde otro lugar.
Un saludo histórico.
Responder Con Cita
  #10  
Antiguo 20-03-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Es que con los años se vuelve flojo

Por cierto, ¡vaya memoria Al!

// Saludos
Responder Con Cita
  #11  
Antiguo 20-03-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Sobreviviré en Internet.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 20-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Por cierto, ¡vaya memoria Al!
Cita:
Empezado por dec Ver Mensaje
Sobreviviré en Internet.
¡Memoria la de Google!

Confieso que buscaba un hilo donde yo había dicho algo similar, pero al ver ese mensaje de David me dije: ¿para qué buscar más? Este lo dice todo y sin rodeos.

dec, tus enseñanzas serán trasmitidas por los siglos de los siglos.
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
Llamar un evento de un Tpanel alvq C++ Builder 2 16-12-2010 15:31:47
Llamar a evento Memo6015 OOP 3 15-10-2008 22:07:17
Llamar evento desde otro evento nachito_tuc OOP 1 23-08-2006 21:37:43
LLamar Evento onkeypress estebanx Varios 1 26-05-2006 21:43:14
Llamar a evento Keypress edgusano .NET 1 30-11-2005 22:02:29


La franja horaria es GMT +2. Ahora son las 17:15:54.


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