Fix necesario para la Clase TListBox y TComboBox

Post Reply
User avatar
Antonio Linares
Site Admin
Posts: 42521
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 76 times
Contact:

Fix necesario para la Clase TListBox y TComboBox

Post by Antonio Linares »

En el metodo Add() por favor anadir esta linea:

Code: Select all | Expand

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

#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: 42521
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 76 times
Contact:

Re: Fix necesario para la Clase TListBox y TComboBox

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42521
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 76 times
Contact:

Re: Fix necesario para la Clase TListBox y TComboBox

Post by Antonio Linares »

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

go.bat

Code: Select all | Expand

c:\harbour_ce\bin\harbour classes\listbox.prg /L /N /W /D__FWCE__  /I..\include;c:\harbour_ce\includec:\harbour_ce\bin\harbour classes\combobox.prg /L /N /W /D__FWCE__  /I..\include;c:\harbour_ce\includec:\vce\bin\clarm -c -TP /DARM /DUNICODE -Ic:\harbour_ce\include -Ic:\vce\include\arm listbox.cc:\vce\bin\clarm -c -TP /DARM /DUNICODE -Ic:\harbour_ce\include -Ic:\vce\include\arm combobox.cc:\vce\bin\lib ..\lib\Fivece.lib /remove:objce\LISTBOX.objc:\vce\bin\lib ..\lib\Fivece.lib /remove:objce\COMBOBOX.objc:\vce\bin\Lib ..\lib\Fivece.lib /OUT:..\lib\Fivece.lib listbox.objc:\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: 42521
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 76 times
Contact:

Re: Fix necesario para la Clase TListBox y TComboBox

Post by Antonio Linares »

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: 42521
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 76 times
Contact:

Re: Fix necesario para la Clase TListBox y TComboBox

Post by Antonio Linares »

Importante:

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

Antonio Linares
www.fivetechsoft.com
Post Reply