Fix necesario para la Clase TListBox y TComboBox

Fix necesario para la Clase TListBox y TComboBox

Postby Antonio Linares » Sun Feb 01, 2009 9:41 pm

En el metodo Add() por favor anadir esta linea:
Code: Select all  Expand view
METHOD Add( cItem, nAt ) CLASS TListBox

   DEFAULT nAt := Len( ::aItems )

   cItem = FW_AnsiToWide( cItem )  // Nueva !!!

   if nAt == Len( ::aItems )
      AAdd( ::aItems, cItem )
      ::SendMsg( LB_ADDSTRING, 0, cItem )
   else
      ASize( ::aItems, Len( ::aItems ) + 1 )
      AIns( ::aItems, nAt + 1 )
      ::aItems[ nAt + 1 ] = cItem
      ::SendMsg( LB_INSERTSTRING, nAt, cItem )
   endif

   ::SendMsg( LB_SETCURSEL, nAt )

return nil

Reemplazar todas las llamadas a AnsiToWide() en listbox.prg con FW_AnsiToWide()

Y anadir esta funcion a listbox.prg:
Code: Select all  Expand view
#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

LPWSTR AnsiToWide( char * );

HB_FUNC( FW_ANSITOWIDE )
{
  LPWSTR pW = AnsiToWide( hb_parc( 1 ) );
  int iLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, hb_parc( 1 ), -1, 0, 0 );

  hb_retclen( ( char * ) pW, ( hb_parclen( 1 ) * 2 ) + 1 );
  hb_xfree( pW );
}

#pragma ENDDUMP
regards, saludos

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

Re: Fix necesario para la Clase TListBox y TComboBox

Postby Antonio Linares » Sun Feb 01, 2009 10:10 pm

El mismo arreglo es necesario para la Clase TCombobox: (source\classes\combobox.prg)

1. Reemplazar todas las llamadas a AnsiToWide() con FW_AnsiToWide()

2. Si ya anadistes HB_FUNC( FW_ANSITOWIDE ) en listbox.prg entonces no es necesario anadirlo en combobox.prg
regards, saludos

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

Re: Fix necesario para la Clase TListBox y TComboBox

Postby Antonio Linares » Sun Feb 01, 2009 11:08 pm

Podeis modificar, compilar y reemplazar módulos en FWPPC de esta forma:

go.bat
Code: Select all  Expand view
c:\harbour_ce\bin\harbour classes\listbox.prg /L /N /W /D__FWCE__  /I..\include;c:\harbour_ce\include
c:\harbour_ce\bin\harbour classes\combobox.prg /L /N /W /D__FWCE__  /I..\include;c:\harbour_ce\include
c:\vce\bin\clarm -c -TP /DARM /DUNICODE -Ic:\harbour_ce\include -Ic:\vce\include\arm listbox.c
c:\vce\bin\clarm -c -TP /DARM /DUNICODE -Ic:\harbour_ce\include -Ic:\vce\include\arm combobox.c
c:\vce\bin\lib ..\lib\Fivece.lib /remove:objce\LISTBOX.obj
c:\vce\bin\lib ..\lib\Fivece.lib /remove:objce\COMBOBOX.obj
c:\vce\bin\Lib ..\lib\Fivece.lib /OUT:..\lib\Fivece.lib listbox.obj
c:\vce\bin\Lib ..\lib\Fivece.lib /OUT:..\lib\Fivece.lib combobox.obj
regards, saludos

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

Re: Fix necesario para la Clase TListBox y TComboBox

Postby Antonio Linares » Sun Feb 01, 2009 11:32 pm

Acabamos de publicar un nuevo build 9.01 de FWPPC con estos cambios :-)
regards, saludos

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

Re: Fix necesario para la Clase TListBox y TComboBox

Postby Antonio Linares » Mon Feb 02, 2009 11:31 am

Importante:

El flag -TP de clarm no debe ser usado pues no queremos modo C++
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41289
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 3 guests