Como ingresar la hora en un TextBox

146 views
Skip to first unread message

integral

unread,
Oct 18, 2025, 1:10:01 AM (3 days ago) Oct 18
to Comunidad de Visual Foxpro en Español
Estimados amigos del Foro

Muy Buenas Noches

Con el fin de no usar el control DateTime and Picket quisiera ver sus
comentarios para hacer un textbox que muestre por ejemplo 11:30 am. 
La idea es crear un textbox para el registro de la hora de la transferencia.

Aquí adjunto una imagen de un modelo de ingreso de la hora que deseo imitar en un TextBox.

INGRESO_HORA.jpg

Adjunto un formulario con lo avanzado...

Espero alguna sugerencia en el código.

Agradezco sus comentarios y sugerencias en el codigo.

Atte,

Integral 

Gracias de antemano.
hora.2scx
hora.2SCT

integral

unread,
Oct 18, 2025, 1:49:58 PM (2 days ago) Oct 18
to Comunidad de Visual Foxpro en Español
Que tal Amigos

Buenos Dias

Adjunto el formulario con una pequeñas correcciones.

Respondiendo al colega que me escribe preguntandome de cual es el error..

Pues bien si se ingresa en el TextBox una hora antes del medio dia lo hace en forma correcta..

Ej,.      10:40AM

Pero si el ingreso es posterior al medio dia ahi se distorsiona la hora de ingreso y es donde falla la rutina...

Atte.,

Integral

hora.2scx
hora.2SCT

integral

unread,
Oct 18, 2025, 3:08:21 PM (2 days ago) Oct 18
to Comunidad de Visual Foxpro en Español

Que tal Amigos

Buscando en el internet encontre el siguiente codigo pero esta hecho en Visual Basic..

Private Sub TextBox1_Change()
TextBox1 = Left(TextBox1, TextBox1.SelStart)
Select Case Len(TextBox1)
   Case 1:
      If InStr("012", TextBox1) = 0 Then
         TextBox1 = ""
         Exit Sub
      End If
   Case 2:
      Select Case Left(TextBox1, 1)
         Case 0, 1
            If InStr("0123456789", Right(TextBox1, 1)) = 0 Then
               TextBox1 = Left(TextBox1, 1)
               Exit Sub
            End If
          Case 2
            If InStr("0123", Right(TextBox1, 1)) = 0 Then
               TextBox1 = Left(TextBox1, 1)
               Exit Sub
            End If
      End Select
      TextBox1 = TextBox1 & ":"
      Exit Sub
   Case 3:
      If Right(TextBox1, 1) <> ":" Then
         TextBox1 = Left(TextBox1, 2)
      End If
   Case 4:
      If InStr("012345", Right(TextBox1, 1)) = 0 Then
         TextBox1 = Left(TextBox1, 3)
         Exit Sub
      End If
   Case 5:
      If InStr("0123456789", Right(TextBox1, 1)) = 0 Then
         TextBox1 = Left(TextBox1, 4)
         Exit Sub
      End If
End Select
End Sub

Algun conocedor de Visual Basic...

Agradezco vuestra ayuda

Atte.,

Integral

Víctor Hugo Espínola Domínguez

unread,
Oct 18, 2025, 6:02:50 PM (2 days ago) Oct 18
to publice...@googlegroups.com

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/4d0d86ba-27f3-41ca-9e65-466a0996c5a4n%40googlegroups.com.

Sergio Rojas

unread,
Oct 18, 2025, 7:22:21 PM (2 days ago) Oct 18
to publice...@googlegroups.com

Hola

Yo solo hago en el textbox usando una variable tipo character:

this.format = 'R'

this.inputmask = '99:99'

Luego valido

* Valihora
PARAMETERS a_hora
IF VAL(LEFT(a_hora,2)) > 23
    RETURN .f.
ENDIF 
IF VAL(SUBSTR(a_hora,3,2)) > 59
    RETURN .f.
ENDIF 
RETURN .t.

y para sumar horas las convierto en horas centesimales, hago la suma y luego las vuelvo a horas y minutos.

Saludos

Zarlu

unread,
Oct 19, 2025, 7:01:23 AM (yesterday) Oct 19
to Comunidad de Visual Foxpro en Español
Buenos días Integral!

No entendí cual es la "distorsión" que mencionas, pero te adjunto un form de sugerencia.

Puedes usar flechas y rueda del mouse

Suerte
zarlu
Chetumal, Quintana Roo, México
hora.2SCT
hora.2scx

integral

unread,
Oct 19, 2025, 12:44:03 PM (yesterday) Oct 19
to Comunidad de Visual Foxpro en Español
Amigo Zarlu

Buenos Dias

Gracias por el ejemplo, pero tiene un problema..

No me permite ingresar las horas mayores a 12;00 p.m.

Si ingreso antes del medio dia

Ej. 
11;45AM

Funciona correctamente

Atte.,

Integral

integral

unread,
Oct 19, 2025, 3:32:19 PM (yesterday) Oct 19
to Comunidad de Visual Foxpro en Español
Que tal Amigos Victor y Zarlu

Estuve revisando los ejemplos enviados. Y están muy codificados y algo mas complejos...

El ejemplo de ZARLU se parece bastante y me di cuenta que las horas después del mediodía no hace falta indicarle en la forma como pensaba.

Adjunto una imagen que muestra lo comentado.

Resultado_Final_Hora.jpg

Gracias amigos

Hasta la próxima

Saludos,

Integral

Zarlu

unread,
Oct 19, 2025, 3:52:04 PM (yesterday) Oct 19
to Comunidad de Visual Foxpro en Español
Qué tal integral!

Exacto, tal como comentas, para un formato de 12 horas a las 12:01:01 se cambia a AM/PM cada cicio.
Para formato de 24 horas el ciclo es 0:00-24:00(0:00)

Mi sugerencia es trabajar con formato 24 horas.

Que bien que ya resolviste

Suerte
zarlu
Chetumal, Quintana Roo, México

Hector Colman

unread,
5:37 AM (13 hours ago) 5:37 AM
to publice...@googlegroups.com
la forma más fácil que conozco es utilizar el OCX 
image.png

integral

unread,
11:07 AM (8 hours ago) 11:07 AM
to Comunidad de Visual Foxpro en Español
Que tal Amigos del Foro

Muy Buenos Días

Colega Héctor Colman,  te comento que anteriormente venia utilizando la OCX que indicas.

Pero en este caso en concreto decidí no utilizar dicho OCX 

Respondiendo al colega que me consulta que debe cambiar al codigo del ejemplo del colega ZARLU.

Para que acepte valores mayores a 12:00PM 

Ej. 13:40PM
      21:38PM

En mi caso lo ingreso de la siguiente forma tomando los ejemplos indicados.

Ej.  01:40PM
       09:38PM

Creo que no bastaría con poner SET HOUR To 24

Esperemos que el amigo ZARLU autor del código nos pueda indicar mediante quizás un cambio en el código.
Como hacer para que funcione según lo planteado después de las 12:00PM

Saludos,

Integral

Zarlu

unread,
1:09 PM (6 hours ago) 1:09 PM
to Comunidad de Visual Foxpro en Español
Buenos días Integral!

El ejemplo que compartí es sólo para formato 12 horas.
No se afecta con SET HOURS. Habría que reescribir el código para hacerlo 24 horas o bien para ambos.
Compartiré algo para 24 horas que suelo usar, es una clase

Suerte
zarlu
Chetumal, Quintana Roo, México

Zarlu

unread,
1:15 PM (6 hours ago) 1:15 PM
to Comunidad de Visual Foxpro en Español
Qué tal colegas!

Aquí algo para 24 horas.

Suerte
zarlu
Chetumal, Quintana Roo, México


Reply all
Reply to author
Forward
0 new messages