FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Mon Nov 26, 2018 05:20 PM
Code (fw): Select all Collapse
METHOD KeyDown() CLASS TCalex

....
聽case ::oView:IsKindOf( "TDAYVIEW" )
聽 聽 聽 do case
聽 聽 聽 聽 聽case nKey == VK_UP
聽 聽 聽 聽 聽 聽 聽 IF ::oDayView:nRowDown > 1
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:aSelectedRow:= {}
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown-= 1.0001
聽 聽 聽 聽 聽 聽 聽 聽 聽AAdd( ::oDayView:aSelectedRow, { ::oDayView:nRowDown, ::oDayView:nColDown } )
聽 聽 聽 聽 聽 聽 聽 聽 聽::Refresh()
聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_DOWN
聽 聽 聽 聽 聽 聽 聽 IF ::oDayView:nRowDown < ::oDayView:nRowCount
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:aSelectedRow:= {}
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown+= 1.0001
聽 聽 聽 聽 聽 聽 聽 聽 聽AAdd( ::oDayView:aSelectedRow, {::oDayView:nRowDown , ::oDayView:nColDown } )
聽 聽 聽 聽 聽 聽 聽 聽 聽::Refresh()
聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_PRIOR 
聽 聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽 聽 聽 聽 ::oDayView:GoNext()
聽 聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_NEXT 
聽 聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽 聽 聽 聽 ::oDayView:GoPrev()
聽 聽 聽 聽 聽 聽 聽 聽 *
endase
...
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Mon Nov 26, 2018 07:14 PM

Muchas gracias por compartirlo...
Funciona muy bien!

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Mon Nov 26, 2018 07:44 PM

Gracias ! :D

Estoy intentando editar con intro y no necesitar hacerlo con mouse. Necesitariamos asignar la data oCalInfoSelected despues de navegar up/ down.
Le estoy dando m谩s vueltas que a un mono pero no veo c贸mo hacerlo. Ahora lo tengo que dejar. Si alguien quiere echar una mano, ser铆a muy de agradecer.

Saludos

=========================
EDITADO.

Creo que ya lo tengo. Cuando lo pruebe mejor lo subo.

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 11:07 AM
Bueno, conseguido.. a帽adida edicion con Intro.

As铆 tenemos que el codigo de debajo incluye, para la vista diaria: edicion de cita con intro, navegacion entre horas con flecha up/down y navegacion entre dias con avance y retroceso de pagina.


Code (fw): Select all Collapse
 case ::oView:IsKindOf( "TDAYVIEW" )
      do case
         case nKey == VK_RETURN

          ::oDayView:HitTest2()
          #Define oCALINFO_  ::oDayView:oCalex:oCalInfo
          ::oDayView:oCalex:oCalInfoSelected:= oCALINFO_

          IF oCALINFO_ != NIL
             // Modificacion de agenda
             ::oSample:BuildDialog( ::oDayView, oCALINFO_:dStart, oCALINFO_:dEnd, oCALINFO_:nStart, oCALINFO_:nEnd)
          ELSE
             // Nueva cita
             #Define nAtColDown_ ::oDayView:nColDown
             #Define nTime_      ::oDayView:GetTimeFromRow( (::oDayView:nRowDown)+ 1 )
             #Define nTimeDown_  ::oDayView:GetTimeFromRow( (::oDayView:nRowDown) )


             ::oSample:BuildDialog( ::oDayView,;
                               ::GetFirstDateWeek() + nAtColDown_ - 1, ;
                               ::GetFirstDateWeek() + ::oDayView:nAtCol - 1, ;
                               nTimeDown_,;
                               nTime_ )

          ENDIF

          ::oDayView:SetFocus()


         case nKey == VK_UP
              IF ::oDayView:nRowDown > 1
                 ::oDayView:aSelectedRow:= {}
                 ::oDayView:nRowDown-= 0.9999999
                 ::oDayView:nRowDown:= Max(::oDayView:nRowDown, 1)
                 AAdd( ::oDayView:aSelectedRow, { ::oDayView:nRowDown, ::oDayView:nColDown } )
                 ::Refresh()
              ENDIF
              *
         case nKey == VK_DOWN
              IF ::oDayView:nRowDown < ::oDayView:nRowCount
                 ::oDayView:aSelectedRow:= {}
                 ::oDayView:nRowDown+= 1.0001
                 AAdd( ::oDayView:aSelectedRow, {::oDayView:nRowDown , ::oDayView:nColDown } )
                 ::Refresh()
              ENDIF
              *
         case nKey == VK_PRIOR
              *
              ::oDayView:GoNext()
              *
         case nKey == VK_NEXT
              *
              ::oDayView:GoPrev()
              *
         case nKey == VK_LEFT
         case nKey == VK_RIGHT
         otherwise
            return ::Super:KeyDown( nKey, nFlags )
      endcase
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 11:30 AM

Muchas gracias nuevamente por compartirlo!

Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 06:53 PM
Genial aporte. Quer铆a consultarte si en la clase que tu tienes est谩 solucionado este problema que plante茅 hace alg煤n tiempo :
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=36079&p=214995&hilit=tcalex#p214995

Si miras Septiembre o Diciembre de este a帽o por ejemplo y est谩 el calendario configurado para que el primer d铆a de la semana sea lunes (calendario de Espa帽a) no "pinta" bien la vista mensual .

Gracias,
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 07:10 PM

Hola 脕ngel,

No se me mostraban bien. Mir茅 en el foro a ver qu茅 tal y vi tu mensaje viewtopic.php?f=6&t=33878&start=15#p206676 donde Crist贸bal te dec铆a que compararas con el bitbucket de Daniel.
Eso hice, copi茅 un par de trozos de c贸digo que estaban distintos y se me arregl贸. Si quieres int茅ntalo y si no te funciona intento buscar cuales son los cambios que hice.

Saludos

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 08:18 PM

Gracias por tu aporte
No lo he podido probar, ando liadillo, pero seguro que funciona correctamente
Saludos

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 08:25 PM
Crist贸bal,

No lo he podido probar, ando liadillo, pero seguro que funciona correctamente

Hasta ahora nadie las ha probado, salvo yo. As铆 que no deben ser muy de fiar :-)

He seguido haciendo modificaciones. La verdad es que la zona de vista diaria, poco a poco, se est谩 quedando muy bien. Es incre铆ble el trabajo de Daniel.

Saludos
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Nov 27, 2018 08:27 PM

Lo repito, seguro que funciona correctamente
Cuando lo pruebe te digo

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Sun Dec 02, 2018 08:53 PM
hmpaquito wrote:Hola 脕ngel,

No se me mostraban bien. Mir茅 en el foro a ver qu茅 tal y vi tu mensaje viewtopic.php?f=6&t=33878&start=15#p206676 donde Crist贸bal te dec铆a que compararas con el bitbucket de Daniel.
Eso hice, copi茅 un par de trozos de c贸digo que estaban distintos y se me arregl贸. Si quieres int茅ntalo y si no te funciona intento buscar cuales son los cambios que hice.


Saludos

Lo encontr茅, gracias. Se trataba de modificar el m茅todo SetDate() de la clase TMonthView
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Sun Dec 02, 2018 09:14 PM
hmpaquito wrote:Bueno, conseguido.. a帽adida edicion con Intro.

As铆 tenemos que el codigo de debajo incluye, para la vista diaria: edicion de cita con intro, navegacion entre horas con flecha up/down y navegacion entre dias con avance y retroceso de pagina.


Code (fw): Select all Collapse
 case ::oView:IsKindOf( "TDAYVIEW" )
聽 聽 聽 do case
聽 聽 聽 聽 聽case nKey == VK_RETURN

聽 聽 聽 聽 聽 ::oDayView:HitTest2()
聽 聽 聽 聽 聽 #Define oCALINFO_ 聽::oDayView:oCalex:oCalInfo
聽 聽 聽 聽 聽 ::oDayView:oCalex:oCalInfoSelected:= oCALINFO_

聽 聽 聽 聽 聽 IF oCALINFO_ != NIL
聽 聽 聽 聽 聽 聽 聽// Modificacion de agenda
聽 聽 聽 聽 聽 聽 聽::oSample:BuildDialog( ::oDayView, oCALINFO_:dStart, oCALINFO_:dEnd, oCALINFO_:nStart, oCALINFO_:nEnd)
聽 聽 聽 聽 聽 ELSE
聽 聽 聽 聽 聽 聽 聽// Nueva cita
聽 聽 聽 聽 聽 聽 聽#Define nAtColDown_ ::oDayView:nColDown
聽 聽 聽 聽 聽 聽 聽#Define nTime_ 聽 聽 聽::oDayView:GetTimeFromRow( (::oDayView:nRowDown)+ 1 )
聽 聽 聽 聽 聽 聽 聽#Define nTimeDown_ 聽::oDayView:GetTimeFromRow( (::oDayView:nRowDown) )


聽 聽 聽 聽 聽 聽 聽::oSample:BuildDialog( ::oDayView,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽::GetFirstDateWeek() + nAtColDown_ - 1, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽::GetFirstDateWeek() + ::oDayView:nAtCol - 1, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nTimeDown_,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nTime_ )

聽 聽 聽 聽 聽 ENDIF

聽 聽 聽 聽 聽 ::oDayView:SetFocus()


聽 聽 聽 聽 聽case nKey == VK_UP
聽 聽 聽 聽 聽 聽 聽 IF ::oDayView:nRowDown > 1
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:aSelectedRow:= {}
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown-= 0.9999999
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown:= Max(::oDayView:nRowDown, 1)
聽 聽 聽 聽 聽 聽 聽 聽 聽AAdd( ::oDayView:aSelectedRow, { ::oDayView:nRowDown, ::oDayView:nColDown } )
聽 聽 聽 聽 聽 聽 聽 聽 聽::Refresh()
聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_DOWN
聽 聽 聽 聽 聽 聽 聽 IF ::oDayView:nRowDown < ::oDayView:nRowCount
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:aSelectedRow:= {}
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown+= 1.0001
聽 聽 聽 聽 聽 聽 聽 聽 聽AAdd( ::oDayView:aSelectedRow, {::oDayView:nRowDown , ::oDayView:nColDown } )
聽 聽 聽 聽 聽 聽 聽 聽 聽::Refresh()
聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_PRIOR
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽 聽 聽 ::oDayView:GoNext()
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_NEXT
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽 聽 聽 ::oDayView:GoPrev()
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_LEFT
聽 聽 聽 聽 聽case nKey == VK_RIGHT
聽 聽 聽 聽 聽otherwise
聽 聽 聽 聽 聽 聽 return ::Super:KeyDown( nKey, nFlags )
聽 聽 聽 endcase


S贸lo un par de ajustes, intercambiar VK_NEXT y VK_PRIOR y saber qu茅 hace HitTest2()
Code (fw): Select all Collapse
 case ::oView:IsKindOf( "TDAYVIEW" )
聽 聽 聽 do case
聽 聽 聽 聽 聽case nKey == VK_RETURN

//聽 聽 聽 聽 聽 ::HitTest2()
聽 聽 聽 聽 聽 #Define oCALINFO_ 聽::oDayView:oCalex:oCalInfo
聽 聽 聽 聽 聽 ::oDayView:oCalex:oCalInfoSelected:= oCALINFO_

聽 聽 聽 聽 聽 IF oCALINFO_ != NIL
聽 聽 聽 聽 聽 聽 聽// Modificacion de agenda
聽 聽 聽 聽 聽 聽 聽::oSample:BuildDialog( ::oDayView, oCALINFO_:dStart, oCALINFO_:dEnd, oCALINFO_:nStart, oCALINFO_:nEnd)
聽 聽 聽 聽 聽 ELSE
聽 聽 聽 聽 聽 聽 聽// Nueva cita
聽 聽 聽 聽 聽 聽 聽#Define nAtColDown_ ::oDayView:nColDown
聽 聽 聽 聽 聽 聽 聽#Define nTime_ 聽 聽 聽::oDayView:GetTimeFromRow( (::oDayView:nRowDown)+ 1 )
聽 聽 聽 聽 聽 聽 聽#Define nTimeDown_ 聽::oDayView:GetTimeFromRow( (::oDayView:nRowDown) )


聽 聽 聽 聽 聽 聽 聽::oSample:BuildDialog( ::oDayView,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽::GetFirstDateWeek() + nAtColDown_ - 1, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽::GetFirstDateWeek() + ::oDayView:nAtCol - 1, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nTimeDown_,;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nTime_ )

聽 聽 聽 聽 聽 ENDIF

聽 聽 聽 聽 聽 ::oDayView:SetFocus()


聽 聽 聽 聽 聽case nKey == VK_UP
聽 聽 聽 聽 聽 聽 聽 IF ::oDayView:nRowDown > 1
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:aSelectedRow:= {}
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown-= 0.9999999
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown:= Max(::oDayView:nRowDown, 1)
聽 聽 聽 聽 聽 聽 聽 聽 聽AAdd( ::oDayView:aSelectedRow, { ::oDayView:nRowDown, ::oDayView:nColDown } )
聽 聽 聽 聽 聽 聽 聽 聽 聽::Refresh()
聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_DOWN
聽 聽 聽 聽 聽 聽 聽 IF ::oDayView:nRowDown < ::oDayView:nRowCount
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:aSelectedRow:= {}
聽 聽 聽 聽 聽 聽 聽 聽 聽::oDayView:nRowDown+= 1.0001
聽 聽 聽 聽 聽 聽 聽 聽 聽AAdd( ::oDayView:aSelectedRow, {::oDayView:nRowDown , ::oDayView:nColDown } )
聽 聽 聽 聽 聽 聽 聽 聽 聽::Refresh()
聽 聽 聽 聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_NEXT
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽 聽 聽 ::oDayView:GoNext()
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_PRIOR
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽 聽 聽 ::oDayView:GoPrev()
聽 聽 聽 聽 聽 聽 聽 *
聽 聽 聽 聽 聽case nKey == VK_LEFT
聽 聽 聽 聽 聽case nKey == VK_RIGHT
聽 聽 聽 聽 聽otherwise
聽 聽 聽 聽 聽 聽 return ::Super:KeyDown( nKey, nFlags )
聽 聽 聽 endcase
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Mon Dec 03, 2018 11:02 PM

Saludos
Puedes publica el c贸digo Completo?

Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Dec 04, 2018 01:47 AM

+1

Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Aporte para TCalex: Navegaci贸n con teclas en Vista Dia
Posted: Tue Dec 04, 2018 09:07 AM
脕ngel,

Code (fw): Select all Collapse
METHOD HitTest2( ) CLASS TCalEx
   local aCoor, aRet
 
   aCoor = ::GetCoorFromPos( ::nRowDown, ::nColDown )

   //verify is over oCalInfo object
   ::oCalex:oCalInfo := ::GetInfoFromCoors( aCoor[CI_TOP], aCoor[CI_LEFT], ::dDateSelected )

   aRet = { HITTEST_BODY, If( ::oCalex:oCalInfo != NIL, NIL, aCoor ) }

return aRet


Cuando tenga una ventana de oportunidad publicar茅 el resto de mejoras de movimiento con teclas (y otras). Todo el c贸digo, m谩s adelante, porque lleva particularidades que tengo que sacar con codeblocks.

Continue the discussion