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 24-12-2006
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Question DateTimePicket y UpDown

Saludos a todos... He situado un DateTimePicker (solo con Date) y las flechitas de up y down son muy pequeñas para una pantalla tactil. Podria asociar de alguna manera un TUpDown a esas flechitas para solaparlas en pantalla.
Gracias por su colaboracion...
Responder Con Cita
  #2  
Antiguo 24-12-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Al asociarlo tomará el tamaño de las flechitas con lo cual estarás en lo mismo. Sin embargo si fuera un MonthCalendar, saldrás ganando puesto que toma el tamaño del calendario.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 24-12-2006
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Question Es asociar funciones

Estimado Marcos... por asociar me referia a que cuando actue hacia arriba o abajo el TUpDown le pase ese "click" a las flechitas del otro y funcione como si realmente le estubiese cliqueando a las flechitas pequeñas del componenteTDateTime....
Responder Con Cita
  #4  
Antiguo 24-12-2006
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
¿Qué las flechitas up-down del DateTimePicker no aparecen cuando se muestra la hora y no la fecha?

En todo caso, siempre puedes usar cualquier control, por ejemplo un SpeedButton y simular que se oprimen las flechas:

Código Delphi [-]
(* Flecha arriba *)
keybd_event(VK_UP, 0, 0, 0);
keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);

(* Flecha abajo *)
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);

// Saludos
Responder Con Cita
  #5  
Antiguo 25-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por roman
En todo caso, siempre puedes usar cualquier control, por ejemplo un SpeedButton y simular que se oprimen las flechas:
Aunque lo has dejado claro, podría haber confusión: No se podría utilizar cualquier control, sino que debería usarse un SpeedButton, precisamente porque este control no captura el foco del ratón, por tanto, se puede estar en el TDateTimePicker y al pulsar el SpeedButton, el foco sigue estando en el TdateTimePicker, por tanto esas pulsaciones se envían a dicho control.

Si usamos un simple TButton, al pulsarlo, el foco estaría sobre el TButton, por tanto esa pulsación la procesaría el TButton, no el TdatetimePicker.

Para más aclaración:
Cita:
Empezado por tarco35
las flechitas de up y down son muy pequeñas para una pantalla tactil.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 25-12-2006 a las 13:50:32.
Responder Con Cita
  #6  
Antiguo 25-12-2006
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Thumbs up Funciona...

Lo he probado y funciona correctamente sobre el componente que tenga el foco, sea el que sea, Grid, TDateTimer, Combo... pro.. ¿habria alguna forma de hacerlo para que solo funcionara para un determinado componente?
Gracias por todo.
Responder Con Cita
  #7  
Antiguo 26-12-2006
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
Cita:
Empezado por Lepe
No se podría utilizar cualquier control, sino que debería usarse un SpeedButton, precisamente porque este control no captura el foco del ratón, por tanto, se puede estar en el TDateTimePicker y al pulsar el SpeedButton, el foco sigue estando en el TdateTimePicker, por tanto esas pulsaciones se envían a dicho control.
Tienes razón en esto que comentas. La verdad es que originalmente había puesto un DateTimePicker1.SetFocus justo antes del código expuesto y por alguna razón que ahora no ve claro lo quité Poniendo el foco en el control deseado antes de simular la tecla resolvería el problema con un Button u otro control y creo que es lo que resolvería lo último que plantea tarco35.

// Saludos
Responder Con Cita
  #8  
Antiguo 26-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Otra solución a la planteada por roman:

En el Onclick del SpeedButton:
Código Delphi [-]
if (Self.ActiveControl is TdatetimePicker) and
   (TDateTimePicker(Self.ActiveControl) = DatetimePicker1) then
  // aqui lanzamos los eventos de teclado
else
   ShowMessage(' Haga clic primero en el Control de fechas');
Quizás en este caso me parece más acertada la solución de roman. Normalmente esos SpeedButtons se colocan cerca del TDateTimePicker, por tanto el usuario al pulsar dicho botón, espera que automáticamente cambie ese control y no otro.

Para hacer más intuitiva la cosa, puedes poner un GroupBox y dentro el TDatetimePicker y los dos SpeedButton, así quedará más claro al usuario como funciona.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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 02:01:11.


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