Page 1 of 1

Fix necesario para la Clase TListBox y TComboBox

Posted: Sun Feb 01, 2009 9:41 pm
by Antonio Linares
En el metodo Add() por favor anadir esta linea:

Code: Select all

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

#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

Re: Fix necesario para la Clase TListBox y TComboBox

Posted: Sun Feb 01, 2009 10:10 pm
by Antonio Linares
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

Re: Fix necesario para la Clase TListBox y TComboBox

Posted: Sun Feb 01, 2009 11:08 pm
by Antonio Linares
Podeis modificar, compilar y reemplazar módulos en FWPPC de esta forma:

go.bat

Code: Select all

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

Re: Fix necesario para la Clase TListBox y TComboBox

Posted: Sun Feb 01, 2009 11:32 pm
by Antonio Linares
Acabamos de publicar un nuevo build 9.01 de FWPPC con _ :-)

Re: Fix necesario para la Clase TListBox y TComboBox

Posted: Mon Feb 02, 2009 11:31 am
by Antonio Linares
Importante:

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