FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for CA-Clipper Dibread/palbmpread failure
Posts: 172
Joined: Fri Oct 07, 2005 01:29 PM
Dibread/palbmpread failure
Posted: Mon Mar 06, 2006 01:30 PM

Hi,

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

Alex

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Dibread/palbmpread failure
Posted: 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
Posts: 172
Joined: Fri Oct 07, 2005 01:29 PM
palbmpread failure
Posted: Tue Mar 07, 2006 02: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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Dibread/palbmpread failure
Posted: Tue Mar 07, 2006 08:39 AM

Alex,

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

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 108
Joined: Sun Oct 09, 2005 06:12 PM
Dibread/palbmpread failure
Posted: 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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Dibread/palbmpread failure
Posted: Fri Mar 10, 2006 07: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

Continue the discussion