Clase Botón Calendario de Luis Maria

3,458 views
Skip to first unread message

Antonio Meza

unread,
Mar 9, 2012, 3:35:34 PM3/9/12
to publice...@googlegroups.com
Buenas tardes, el otro día baje la clase Boton Calendario de Luis Maria, y funciona bien, el problema se me presenta si el formulario es de Nivel 2 o sea superior, ya no me lo muestra, entonces entre a la clase y modifique para que también fuera de nivel superior 2 el formulario pero ahora cuando lo ejecuto se desaparece y me muestra la fecha actual, es decir no me permite seleccionar la fecha.

Alguien lo ha usado y lo haya adaptado para trabajar con un formulario de nivel superior.

En el txt que viene en la clase dice lo siguiente.

*------------------------
* Clase Botón Calendario
*------------------------
Autor: Luis María Guayán
Fecha: 2006.02.11
*------------------------

Para usar esta clase solo debe arrastrar y soltar el objeto "cmdCal" y
configurar la propiedad "txtNombre" con el nombre del control TextBox
que recibirá la fecha seleccionada.

*------------------------

saludos!!!

Luis Maria Guayan

unread,
Mar 9, 2012, 3:48:44 PM3/9/12
to publice...@googlegroups.com
Yo lo tengo solucionado eso, si me das un tiempo, este fin de semana lo subo uno con esos cambios.

En definitiva es similar a lo que tu hiciste, le afrefo una propiedad Desktop = .F. al botón que lo llama, y si es .T. llamo a un formulario de nuvel superior, si es .F. llamo a un formulario normal

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Luis Maria Guayan

unread,
Mar 11, 2012, 4:33:10 PM3/11/12
to publice...@googlegroups.com
Antonio, te adjunto la clase para que funcione en formularios de nivel superior. Para ello debes configurar la propiedad Desktop = .T. en el botón cmdCal

Cambiale la extensión ._zip_ por solamente .zip

Cualquier inquietud me avisas.

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


El 09/03/2012 23:26, Antonio Meza escribió:
Muchas gracias Luis Maria!!!

uso tu control sin ningún problema, y muchas gracias por tomarte el tiempo de modificar la clase para que la pueda seguir utilizando.

saludos
Antonio Meza
LMCal._zip_

Antonio Meza

unread,
Mar 11, 2012, 8:48:16 PM3/11/12
to publice...@googlegroups.com
Buenas tardes Luis Maria!!!

Excelentemente fabulosa!!! muchas mil gracias por su apoyo, la baje, copie, cambien la propiedad  Desktop = .T. y listo a la primera!!!

Debo decir que no la baje hace tiempo si no hace años que la uso en mis formularios, cuando la encontré en portalfox y la agregue a mis formularios, los usuarios me decían que era un genio y que con ese botón les hacia la vida mas fácil, a lo que respondí el verdadero genio no esta presente ahorita, porque no lo hice yo, si no otra persona.

saludos y nuevamente muchas gracias por tu tiempo.
Antonio Meza

Antonio Meza

unread,
Mar 14, 2012, 6:14:08 PM3/14/12
to publice...@googlegroups.com
Buenas tardes Luis Maria!!

Para comentarte que modifique un poco tu clase, porque se me esta presentando un detalle, y te lo comento pues es algo bueno que puede servirte o a otros.

Cuando le das click al boton para mostrar el calendario este siempre cambia el valor del control asignado, en mi caso particular necesito saber si realmente dio aceptar o cancelar y ademas realizar una acción posterior solo si dio aceptar, lo que confirma que cambio la fecha.

Modifique lo siguiente aunque es un poco rustico porque no quiero dañar tu clase,.esta en rojo lo que modifique o agregue

Clase: lmcal.vcx

* SubClase: cmdcal

Evento Click

local pCambio
pCambio = .f.      && Para saber si presiono el boton Aceptar o Cancelar
IF NOT EMPTY(THIS.txtNombre)
   lcTxtValor = "This.Parent." + THIS.txtNombre + ".Value"
ELSE
   lcTxtValor = "DATE()"
ENDIF

IF THIS.DESKTOP
   loLMCal = NEWOBJECT("frmCalTop",THIS.CLASSLIBRARY,NULL,EVALUATE(lcTxtValor))
ELSE
   loLMCal = NEWOBJECT("frmCal",THIS.CLASSLIBRARY,NULL,EVALUATE(lcTxtValor))
ENDIF
loLMCal.SHOW(1)
IF NOT EMPTY(THIS.txtNombre)
  lcTxtValor = "This.Parent." + THIS.txtNombre
IF pCambio
  &lcTxtValor..VALUE = loLMCal.VALUE
  this.mcambio && Agrege este nuevo Metodo, para ejecutar codigo posterior
ENDIF
  &lcTxtValor..SETFOCUS
ENDIF
RELEASE loLMCal
____________________
SubClase: diacal

Evento DobleClick
THIS.PARENT.VALUE = THIS.VALUE
this.Parent.cmdok.Click      && Para que ejecute el boton ACEPTAR
*THIS.PARENT._Release()   && Antes ejecutva salir directo
_____________________________________
SubClase: frmcaltop, Boton: cmdCancelar

Evento Click
pcambio = .f.    && Para saber que presiono cancelar
THIS.PARENT.VALUE = THIS.PARENT.OldValue
THIS.PARENT.HIDE()
____________________________________
SubClase: frmcaltop, Boton: cmdOk

Evento Click
pcambio = .t. && Para saber que presiono aceptar
THIS.PARENT._Release()
 
Nota: Como te comento es lo que necesito en mi caso particular pero puede servir a alguien mas y no se si sea lo correcto, pero bueno esta trabajando bien.

saludos
Antonio Meza

Antonio Meza

unread,
Mar 14, 2012, 6:24:05 PM3/14/12
to publice...@googlegroups.com
La linea donde dice LOCAL pcambio esa no debe ir, si no la variable no sera visible dentro del formulario calendario.

saludos

Clase: lmcal.vcx

* SubClase: cmdcal
Evento Click
local pCambio
pCambio = .f.      && Para saber si presiono el boton Aceptar o Cancelar
IF NOT EMPTY(THIS.txtNombre)

Gerardo Ramirez

unread,
Apr 8, 2012, 5:30:56 PM4/8/12
to publice...@googlegroups.com
Buenas tardes...!

Estoy utilizando esta clase recientemente y m parece espectacular, mas sin embargo se me presento un inconveniente que no he podido resolver, y es que cuando necesito que me muestre el resultado en datetime(), el tiempo no lo actualiza se queda congelado:

No se que estoy haciendo mal: en el Value del textbox coloco =datetime() - Tal y como lo tienes en tu ejemplo, mas sin embargo el tiempo queda congelado para el momento en que se ingreso al form.

De ante mano gracias

Y disculpen las molestias...

Luis Maria Guayan

unread,
Apr 8, 2012, 10:05:55 PM4/8/12
to publice...@googlegroups.com
La clase te permite seleccionar solo Fecha, si el TextBox desde donde lo llamas tiene un valor DateTime, respeta el tipo de la variable y la Hora de esa Fecha.

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


Gerardo Ramirez

unread,
Apr 8, 2012, 10:09:26 PM4/8/12
to publice...@googlegroups.com
PERO UN TU EJEMPLO PASA LO MISMO

POR ESO ES QUE ESTOY TRANCADO

Luis Maria Guayan

unread,
Apr 8, 2012, 10:18:26 PM4/8/12
to publice...@googlegroups.com
A ver, ese es el comportamiento de la clase, permite seleccionar solo fecha y no hora. Respeta la hora de la variable del TextBox

No entiendo cual es el comportamiento que tu deseas. De todos modos puedes cambiar la clase sin problemas para lograr dicho comportamiento.

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


Gerardo Ramirez

unread,
Apr 8, 2012, 10:22:20 PM4/8/12
to publice...@googlegroups.com
Disculpa pero es que no soy experto Estoy empezando en Visual Fox.

Lo que deseo es que cuando escoja la fecha de la clase esta me aroje la fecha y hor del momento que se pulsa

Pero la hora es la que no actualiza sino solo la fecha - Como indique, el Value del textbox le coloque =datetime()

No se, si hay que poner otro valor..

Gracia por tus respuestas

Luis Maria Guayan

unread,
Apr 8, 2012, 10:35:20 PM4/8/12
to publice...@googlegroups.com
Para lograr es comportamiento debes cambiar en los formularios frmCal y frmCalTop en el método _Release la línea:

THIS.VALUE = DTOT(THIS.VALUE) + This.Segundos

por la línea:

THIS.VALUE = DTOT(THIS.VALUE) + SECONDS()



Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


Cesar VfpImaging

unread,
Apr 9, 2012, 7:57:58 AM4/9/12
to publice...@googlegroups.com
Muy buena, Luis Maria, gracias por compartir.
 


 
2012/3/11 Luis Maria Guayan <luism...@gmail.com>

inversio...@gmail.com

unread,
Apr 9, 2012, 1:49:42 PM4/9/12
to publice...@googlegroups.com
Buenas tardes...!
 
Estoy muy agradecido por la ayuda brindada, muchas gracias...!
 
Se resolvió con lo que me indicaste's...
 
Gracias 
 
 
 
 
-------Mensaje original-------
grad.gif
image.gif

Antonio Meza

unread,
Mar 9, 2012, 9:26:29 PM3/9/12
to publice...@googlegroups.com
Muchas gracias Luis Maria!!!

uso tu control sin ningún problema, y muchas gracias por tomarte el tiempo de modificar la clase para que la pueda seguir utilizando.

saludos
Antonio Meza


El viernes 9 de marzo de 2012 14:48:44 UTC-6, Luis Maria Guayan escribió:
Reply all
Reply to author
Forward
Message has been deleted
Message has been deleted
0 new messages