Dibread/palbmpread failure

Dibread/palbmpread failure

Postby AlexSchaft » Mon Mar 06, 2006 1:30 pm

Hi,

How can I find out what causes palbmpread to not return an array?

Alex
User avatar
AlexSchaft
 
Posts: 172
Joined: Fri Oct 07, 2005 1:29 pm
Location: Edenvale, Gauteng, South Africa

Postby Antonio Linares » Mon Mar 06, 2006 10:08 pm

Alex,

How are you checking that it is not returning an array ?
regards, saludos

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

palbmpread failure

Postby AlexSchaft » Tue Mar 07, 2006 2:52 am

Hi,

I sometimes get an array error from TBitmap():Define() method, where the hBitmap and hPalette are read from the PalBmpRead return. I slightly modified as follows:

aBmpPal = PalBmpRead( If( oWnd != nil, oWnd:GetDC(), 0 ), cBmpFile )
if isarray(aBmpPal)
::hBitmap = aBmpPal[ 1 ]
::hPalette = aBmpPal[ 2 ]
else
::hBitmap = 0
::hPalette = 0
endif
User avatar
AlexSchaft
 
Posts: 172
Joined: Fri Oct 07, 2005 1:29 pm
Location: Edenvale, Gauteng, South Africa

Postby Antonio Linares » Tue Mar 07, 2006 8:39 am

Alex,

If you review PalBmpRead() source code you may see it always returns an array.
regards, saludos

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

Postby DanielPuente » Thu Mar 09, 2006 10:38 pm

Antonio:

I confirm what alex said. Yesterday i was working in a fw 192 program recompiling it win fw 2.3 and clipper and i have some compatibility problems (i think) between dbuttons class and fw tbitmap class, so i compiled bitmap.prg from fw23\source\classes with my program and this line:

@ 18,45 BITMAP oBmp FILE "logo2.bmp" SIZE 400,100 OF oWnd NOBORDER

Produces the same error alex said:

Descripci¢n: Error BASE/1068 Error de argumento: array access
Args:
[ 1] = N 22524
Invocado por TBITMAP:LOADIMAGE(591)

The line in bitmap.prg:

aBmpPal = PalBmpRead( ::GetDC(), AllTrim( cBmpFile ) )

Is returning a numeric value instead an array, so you get an error in:

::hBitmap = aBmpPal[ 1 ]
::hPalette = aBmpPal[ 2 ]

If i put:

IF VALTYPE(ABMPPAL) # 'N'

Before those lines, the bitmap, obviously, is no painted. If you use tbitmap from fw libs you don't have any problems, seems like if the bitmap.prg in source\classes is different from the one in the libs.

Regards,
Daniel Puente
Mar del Plata, Argentina
danielpuente@speedy.com.ar
puenteda@hotmail.com
DanielPuente
 
Posts: 108
Joined: Sun Oct 09, 2005 6:12 pm
Location: Mar del Plata - Argentina

Postby Antonio Linares » Fri Mar 10, 2006 7:40 am

Daniel,

Yes, you are right, that function was changed to return an array instead of a number, when we started developing FWH 32 bits.
regards, saludos

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


Return to FiveWin for CA-Clipper

Who is online

Users browsing this forum: No registered users and 21 guests