Compatibilidad con smartphones

Compatibilidad con smartphones

Postby Salvador » Mon Feb 16, 2009 11:07 am

Antonio.
Estoy centrado en el desarrollo de aplicaciones para smartphones (sin pantalla táctil). Para ello estoy utilizando todavía la versión 9/07.
Esta versión de Fwppc no ofrece compatibilidad a la hora gestionar controles como combobox o gets en estos dispositivos.
En los gets no se puede borrar el carácter hacia atrás, la tecla de retroceso tiene una funcionalidad diferente en un smartphone.
Los comboboxes hay que sustituirlos por listbox expandibles en los que al pulsar la tecla ENTER se muestran todas las opciones a pantalla completa.

Estas diferencias con una PPC me han forzado ha modificar varias de las clases originales de Fwppc para cambiar el comportamiento de estos controles.
Mi pregunta es si el nuevo build de Fwppc que saldrá próximamente tendrá compatibilidad con estas características de smarthone.

Gracias.
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Compatibilidad con smartphones

Postby Antonio Linares » Mon Feb 16, 2009 11:25 am

Salvador,

>
Mi pregunta es si el nuevo build de Fwppc que saldrá próximamente tendrá compatibilidad con estas características de smarthone.
>

La realidad es que tenemos muchos más usuarios programando para Pocket PC que para SmartPhones, por lo que el soporte de SmartPhone no está tan desarrollado, pues recibimos menos información y solicitudes para ellos.

>
Estas diferencias con una PPC me han forzado ha modificar varias de las clases originales de Fwppc para cambiar el comportamiento de estos controles.
>

Si publicas tus cambios, ó nos los envias, veremos la forma de integrarlos para la próxima versión. A más usuarios de SmartPhone, mejor soporte ofrecerá FWPPC :-) Gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41307
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compatibilidad con smartphones

Postby Salvador » Tue Feb 17, 2009 12:19 am

Una de las principales carencia es la falta de control sobre la tecla BACK.
Un ejemplo de dialogo con un get donde la tecla back se utiliza para borrar el carácter tras el cursor:

Code: Select all  Expand view
DEFINE DIALOG oDlgPass RESOURCE "DLGPASSWORD" OF  oCli:oWnd
   
   REDEFINE GET oGet VAR oCli:cargo ID 102   OF oDlgPass;
    // activa teclado  Abc
    oGet:bGotFocus := {|| SendMessage( oGet:hWnd, EM_SETINPUTMODE, 0, EIM_TEXT ) }
   
    ACTIVATE DIALOG oDlgPass;
    ON INIT ( oDlgPass:Setmenu( MenuPassword() ),DlgFullScr( oDlgPass:hwnd ), ;
    OverrideKey( oDlgPass:hWnd, VK_TBACK  ) );
RETURN .t.

HB_FUNC( OVERRIDEKEY )
{
   HWND hMenuBar = (HWND) SHFindMenuBar( (HWND) hb_parnl(1) );  
   int nKey      = hb_parni(2)
   LPARAM lp = MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY,SHMBOF_NODEFAULT | SHMBOF_NOTIFY );
   SendMessage( hMenuBar, SHCMBM_OVERRIDEKEY, nKey, lp );
}


Modificaciones para que esto funcione:

Clase tDialog:
Code: Select all  Expand view
#define VK_TBACK    VK_ESCAPE
#define MOD_KEYUP       0x1000

METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TDialog
   local bStart, lResult
   do case
      case nMsg == WM_INITDIALOG
           return ::Initiate( nWParam, nLParam )
      case nMsg == WM_HOTKEY // hotkeys de smartphone
           
           IF nHiWord( nLParam ) == VK_TBACK //.AND. nLoWord( nLParam ) == 0
               IF nLoWord( nLParam ) == MOD_KEYUP
                    SendBackToFocusWindow( WM_HOTKEY, nWparam, nLParam )    
                    return 1
               ENDIF
         ENDIF
      return 1
       
      case nMsg == WM_PAINT
           lResult = Super:HandleEvent( nMsg, nWParam, nLParam )
           if ::bStart != nil
              SysRefresh()
              bStart = ::bStart
              ::bStart = nil
              Eval( bStart, Self )
           endif          
           return lResult
      endcase
 
return Super:HandleEvent( nMsg, nWParam, nLParam )
 HB_FUNC( SENDBACKTOFOCUSWINDOW )
{
  UINT uMsg     = hb_parnl(1);
  WPARAM wParam = hb_parnl(2);
  LPARAM lParam = hb_parnl(3);
  SHSendBackToFocusWindow( uMsg, wParam, lParam );
 }          


La clase TGet el metodo KeyChar():
Code: Select all  Expand view
do case
    case nKey == VK_BACK       // Already processed at KeyDown
         ::KeyDown( nKey, nFlags ) // smartphone la procesa aqui
         return 0

No se si queda claro. También estoy seguro que debe haber un metodo más elegante de programarlo.
La tecla ENTER (ACTION en smartphone) también tiene una funcionalidad incorrecta, no debe ser utilizada para saltar al siguiente control en el dialogo, sino para activar algunos controles como gets y listbox expandibles.
Espero que pueda ser de utilidad y podais incluirlas para conseguir más compatibilidad con smartphones.
Gracias.
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Compatibilidad con smartphones

Postby Salvador » Tue Feb 17, 2009 2:45 pm

Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Compatibilidad con smartphones

Postby Antonio Linares » Thu Feb 19, 2009 12:19 am

Salvador,

Muchas gracias! :-)

Vamos a revisarlo y te comentamos,
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41307
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Compatibilidad con smartphones

Postby Salvador » Fri Apr 24, 2009 6:54 pm

Antonio.
En que estado se encuentra el nuevo build de FWPPC?.
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Compatibilidad con smartphones

Postby Antonio Linares » Mon Apr 27, 2009 9:21 am

Salvador,

Estamos trabajando en un nuevo build de FWPPC que va a traer muchas y muy interesantes novedades :-)

Esperamos publicarlo para Mayo. En unos dias daremos mas noticias acerca de su desarrollo, que seguro gustarán a muchos :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41307
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 1 guest