Page 1 of 2

xHarbour to Harbour

PostPosted: Fri May 27, 2022 9:06 am
by Natter
Hi,

Dragging my program from xHarbour to Harbour. Please tell me how to rewrite OVERRIDE in the Harbor syntax

Re: xHarbour to Harbour

PostPosted: Fri May 27, 2022 12:56 pm
by Antonio Linares
Dear Natter,

> Please tell me how to rewrite OVERRIDE in the Harbor syntax

Please post an example of how you use it with xHarbour

thanks

Re: xHarbour to Harbour

PostPosted: Fri May 27, 2022 1:11 pm
by Natter
Override Method MouseWheel In Class TXBrowse With XBr_MWhl
Override Method Copy In Class TGet With Cpy_

here - METHOD error
................................................................

atail(a_sp[len(a_sp),2]):=aclone(Str_Arr(dim[st,2,zz], chr(166)))

here - () error

Re: xHarbour to Harbour

PostPosted: Fri May 27, 2022 1:34 pm
by Antonio Linares
This is the function that Harbour provides:

Code: Select all  Expand view
FUNCTION __objModMethod( oObject, cSymbol, nFuncPtr )

   IF ! HB_ISOBJECT( oObject ) .OR. ! HB_ISSTRING( cSymbol ) .OR. ! HB_ISSYMBOL( nFuncPtr )
      __errRT_BASE( EG_ARG, 3101, , ProcName( 0 ) )
   ELSEIF __objHasMethod( oObject, cSymbol )
      __clsModMsg( oObject:ClassH, cSymbol, nFuncPtr )
   ENDIF

   RETURN oObject

Re: xHarbour to Harbour

PostPosted: Fri May 27, 2022 1:50 pm
by Natter
Antonio , thank you ! Excuse me, can I have a concrete example of using this function?

Re: xHarbour to Harbour

PostPosted: Fri May 27, 2022 4:29 pm
by Antonio Linares
Please try this:

__clsModMsg( TXBrowse():ClassH, "MouseWheel", @XBr_MWhl() )

or

__clsModMsg( oXBrowse:ClassH, "MouseWheel", @XBr_MWhl() )

Re: xHarbour to Harbour

PostPosted: Fri May 27, 2022 8:06 pm
by carlos vargas
use harbour/contrib/xhb

#include "xhbcls.ch"

to have xharbour compatibility with extended class modification

Re: xHarbour to Harbour

PostPosted: Sat May 28, 2022 4:03 pm
by Natter
__clsModMsg( oXBrowse:ClassH, "MouseWheel", @XBr_MWhl() )
This option works

I use the function FW_MakeYourBitmap( nTop, nLeft, |hdc, w, h| PaintOverlay(hDC, w, img) }). When compiling under HARBOUR, I get the error of the PaintOverlay() function

Hi, Carlos !

#include "xhb.ch"
#include "xhbcls.ch"

Did I understand correctly that by connecting these 2 files I can not reco
mpile the program for Harbour?

Re: xHarbour to Harbour

PostPosted: Sat May 28, 2022 8:38 pm
by Antonio Linares
Is the function PaintOverlay() a xHarbour function ?

What library do you link to use it ?

Re: xHarbour to Harbour

PostPosted: Sat May 28, 2022 9:25 pm
by Natter
FW_MakeYourBitmap( nTop, nLeft, |hdc, w, h| PaintOverlay(hDC, w, h, img) }).

In this case, PaintOverlay() is a static function gluing two images:

static function PaintOvelay(hDC, w, h, img)
..................................................
return NIL

Re: xHarbour to Harbour

PostPosted: Sat May 28, 2022 11:50 pm
by Antonio Linares
> When compiling under HARBOUR, I get the error of the PaintOverlay() function

What error is it ?

Re: xHarbour to Harbour

PostPosted: Sun May 29, 2022 6:38 am
by Natter
Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '_HB_FUN_PAINTOVERLAY' referenced from C:\PRGM\GIS\HRB\GS.OBJ
Error: Unable to perform link

Re: xHarbour to Harbour

PostPosted: Sun May 29, 2022 10:29 am
by Antonio Linares
Try to remove "static" from here:

static function PaintOvelay(hDC, w, h, img)

Re: xHarbour to Harbour

PostPosted: Sun May 29, 2022 11:48 am
by Natter
Yes, without "static" it compiles without errors!
Do I need to connect #include "xHb" and #include "xHb" ?

Re: xHarbour to Harbour

PostPosted: Sun May 29, 2022 8:25 pm
by Antonio Linares
If you directly use __clsModMsg() then I guess you don't need the header file :-)