xHarbour and latest FWH
xHarbour and latest FWH
I use xHarbour commerical, xBuildW.exe, and xCC compilier and recently upgraded to FWH 2025.01.
When I compile testdlg.prg in the \fwh\samples folder using xBuildW.exe the sample compiles however, when run it closes at ACTIVATE DIALOG with no errors or log file. (msginfo function works).
If I just switch back to FWH 2023.06 it compiles and opens fine.
I get the same results using the version of xHarbour I had or the one included with the latest FWH upgrade (xhb10291_xcc.zip).
What could I be doing wrong?
Thanks,
Randal
When I compile testdlg.prg in the \fwh\samples folder using xBuildW.exe the sample compiles however, when run it closes at ACTIVATE DIALOG with no errors or log file. (msginfo function works).
If I just switch back to FWH 2023.06 it compiles and opens fine.
I get the same results using the version of xHarbour I had or the one included with the latest FWH upgrade (xhb10291_xcc.zip).
What could I be doing wrong?
Thanks,
Randal
- Antonio Linares
- Site Admin
- Posts: 42863
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 198 times
- Been thanked: 124 times
- Contact:
Re: xHarbour and latest FWH
Dear Randal,
In FWH 25.01 we had to remove support for GDI+ for xHarbour commercial as our GDI+ was no longer compatible with vc98 (the Microsoft compiler that we use for xcc compatibility).
If you go to FWH\samples and do buildxhb.bat tutor01 you will find many GDIP... unresolved externals.
If you place this code at the bottom then you can build it:
Anyhow it seems as effectively there is a bug when showing a dialog. We are working to fix it.
Many thanks for your feedback and we apologize for the inconveniencies
In FWH 25.01 we had to remove support for GDI+ for xHarbour commercial as our GDI+ was no longer compatible with vc98 (the Microsoft compiler that we use for xcc compatibility).
If you go to FWH\samples and do buildxhb.bat tutor01 you will find many GDIP... unresolved externals.
If you place this code at the bottom then you can build it:
Code: Select all | Expand
FUNCTION GDIP_DRAWARROW()
RETURN NIL
FUNCTION GDIP_DELETEIMAGE()
RETURN NIL
FUNCTION GDIP_DELETEBRUSH()
RETURN NIL
FUNCTION GDIP_COLORBRUSH()
RETURN NIL
FUNCTION GDIP_IMAGEBRUSH()
RETURN NIL
FUNCTION GDIP_DRAWTEXT()
RETURN NIL
FUNCTION GDIP_HOLLOWTEXT()
RETURN NIL
FUNCTION GDIP_SAYIMAGE()
RETURN NIL
FUNCTION GDIP_RINGGRAD()
RETURN NIL
FUNCTION GDIP_CLONEIMAGE()
RETURN NIL
FUNCTION GDIP_GETHBITMAP()
RETURN NIL
FUNCTION GDIP_FROMHBITMAP()
RETURN NIL
FUNCTION GDIP_FROMRESOURCE()
RETURN NIL
FUNCTION GDIP_IMAGEFROMFILE()
RETURN NIL
FUNCTION GDIP_IMAGEFROMSTR()
RETURN NIL
FUNCTION GDIP_IMAGEINFO()
RETURN NIL
FUNCTION GDIP_ZOOM()
RETURN NIL
FUNCTION GDIP_NEWALPHABMP()
RETURN NIL
FUNCTION GDIP_SAVEIMAGE()
RETURN NIL
FUNCTION GDIP_IMG2BLOB()
RETURN NIL
FUNCTION GDIP_CROP()
RETURN NIL
FUNCTION GDIP_ROTATE()
RETURN NIL
FUNCTION GDIP_DRAWSHAPES()
RETURN NIL
FUNCTION GDIP_FILLRECT()
RETURN NIL
FUNCTION GDIP_GRAD()
RETURN NIL
FUNCTION GDIP_PIE()
RETURN NIL
FUNCTION GDIP_RATIO()
RETURN NIL
FUNCTION GDIP_DRAWIMAGE()
RETURN NIL
FUNCTION GDIP_FONTSTYLE()
RETURN NIL
FUNCTION GDIPMESURETXT()
RETURN NIL
FUNCTION GDIPLUSCAPTURERECTWND()
RETURN NIL
FUNCTION GDIPLUSIMGTOIMG24()
RETURN NIL
FUNCTION GDIPLUSIMAGECREATETHUMB()
RETURN NIL
FUNCTION GDIPLUSIMAGETOCLIPBOARD()
RETURN NIL
FUNCTION GDIPLUSHBITMAPTOCLIPBOARD()
RETURN NIL
FUNCTION GDIPLUSHIGHQUALITY()
RETURN NIL
FUNCTION GDIPLUSNORMALQUALITY()
RETURN NIL
FUNCTION GDIPLUSDRAWLINE()
RETURN NIL
FUNCTION GDIPLUSDRAWRECT()
RETURN NIL
FUNCTION GDIPLUSDRAWELLIPSE()
RETURN NIL
FUNCTION GDIPLUSDRAWARC()
RETURN NIL
FUNCTION GDIPLUSDRAWPATH()
RETURN NIL
FUNCTION GDIPLUSFILLPATH()
RETURN NIL
FUNCTION GDIPLUSCLEARCOLOR()
RETURN NIL
FUNCTION GDIPLUSDRAWTEXT()
RETURN NIL
FUNCTION GDIPLUSSETSMOOTHINGGRAPHICS()
RETURN NIL
FUNCTION GDIPLUSGRAPHTRASLATETRANSFORM()
RETURN NIL
FUNCTION GDIPLUSGRAPHROTATETRANSFORM()
RETURN NIL
FUNCTION GDIPLUSGRAPHSCALE()
RETURN NIL
FUNCTION GDIPLUSNEWGRAPHICS()
RETURN NIL
FUNCTION SETPAGEUNIT2PIXEL()
RETURN NIL
FUNCTION GDIPLUSNEWGRAPHICSWND()
RETURN NIL
FUNCTION GDIPLUSNEWGRAPHICSIMG()
RETURN NIL
FUNCTION GDIPLUSGRAPHICSFROMIMG()
RETURN NIL
FUNCTION GDIPLUSDELETEGRAPHICS()
RETURN NIL
FUNCTION GDIPLUSDRAWIMAGE()
RETURN NIL
FUNCTION GDIPLUSDRAWTEXTFONT()
RETURN NIL
FUNCTION GDIPLUSDRAWTEXTLF()
RETURN NIL
FUNCTION GDIPLUSISINREGION()
RETURN NIL
FUNCTION GDIPLUSCREATEREGIONFROMGPATH()
RETURN NIL
FUNCTION GDIPLUSDELETEPEN()
RETURN NIL
FUNCTION GDIPLUSPENSETCLR()
RETURN NIL
FUNCTION GDIPLUSALIGN()
RETURN NIL
FUNCTION GDIPLUSPENSETLINEJOIN()
RETURN NIL
FUNCTION GDIPLUSNOALIGN()
RETURN NIL
FUNCTION GDIPLUSPENSIZE()
RETURN NIL
FUNCTION GDIPLUSNEWPEN()
RETURN NIL
FUNCTION GDIPLUSPENSTYLE()
RETURN NIL
FUNCTION GDIPLUSNEWSOLIDBRUSH()
RETURN NIL
FUNCTION GDIPLUSDELETEBRUSH()
RETURN NIL
FUNCTION GDIPLUSNEWGRADIENTBRUSH()
RETURN NIL
FUNCTION GDIPLUSANGLEGRADIENTBRUSH()
RETURN NIL
FUNCTION GDIPLUSSTARTUP()
RETURN NIL
FUNCTION GDIPLUSSHUTDOWN()
RETURN NIL
FUNCTION GDIPLUSPATHADDARC()
RETURN NIL
FUNCTION GDIPLUSPATHADDELLIPSE()
RETURN NIL
FUNCTION GDIPLUSPATHADDLINE()
RETURN NIL
FUNCTION GDIPLUSPATHADDRECTANGLE()
RETURN NIL
FUNCTION GDIPLUSPATHCLOSEFIGURE()
RETURN NIL
FUNCTION GDIPLUSPATHSTARTFIGURE()
RETURN NIL
FUNCTION GDIPLUSROTATEPATH()
RETURN NIL
FUNCTION GDIPLUSROTATECENTERPATH()
RETURN NIL
FUNCTION GDIPLUSSCALEPATH()
RETURN NIL
FUNCTION GDIPLUSTRANSLATEPATH()
RETURN NIL
FUNCTION GDIPLUSCREATEPATH()
RETURN NIL
FUNCTION GDIPLUSPATHADDSTRING()
RETURN NIL
FUNCTION GDIPLUSDELETEPATH()
RETURN NIL
FUNCTION GDIPLUSCREATEIMAGEFROMRES()
RETURN NIL
FUNCTION GDIPLUSIMAGEMATRIXTOGRAY()
RETURN NIL
FUNCTION GDIPLUSIMAGEPIXGETALPHA()
RETURN NIL
FUNCTION GDIPLUSIMAGEPIXGETBLUE()
RETURN NIL
FUNCTION GDIPLUSIMAGEGETPIXCOLOR()
RETURN NIL
FUNCTION GDIPLUSPIXISCOLOR()
RETURN NIL
FUNCTION GDIPLUSCREATEHBITMAPIMAGE()
RETURN NIL
FUNCTION GDIPLUSIMAGEPIXGETGREEN()
RETURN NIL
FUNCTION GDIPLUSGETHEIGHTBITMAP()
RETURN NIL
FUNCTION GDIPLUSIMAGEPIXGETRED()
RETURN NIL
FUNCTION GDIPLUSGETWIDTHBITMAP()
RETURN NIL
FUNCTION GDIPLUSIMAGEIS32BITS()
RETURN NIL
FUNCTION GDIPLUSIMAGEROTATEANGLE()
RETURN NIL
FUNCTION GDIPLUSIMAGELOADPNGFROMSTR()
RETURN NIL
FUNCTION GDIPLUSIMAGEROTATEFLIP()
RETURN NIL
FUNCTION GDIPLUSIMAGESET32BITS()
RETURN NIL
FUNCTION GDIPLUSIMAGESETPIXCOLOR()
RETURN NIL
FUNCTION GDIPLUSIMAGEPIXTOGRAYCOLOR()
RETURN NIL
FUNCTION GDIPLUSIMAGEMATRIXCUSTOM()
RETURN NIL
FUNCTION GDIPLUSIMAGESETPIXHCOLOR()
RETURN NIL
FUNCTION GDIPLUSPIXELCOLORTOALPHA()
RETURN NIL
FUNCTION GDIPLUSIMAGESCALE()
RETURN NIL
FUNCTION GDIPLUSIMAGELOADPNGFROMRESOURCES()
RETURN NIL
FUNCTION GDIPLUSIMAGELOADCACHEDFILE()
RETURN NIL
FUNCTION GDIPLUSIMAGESAVEQUALITY()
RETURN NIL
FUNCTION GDIPLUSIMAGESAVE()
RETURN NIL
FUNCTION GDIPLUSIMAGEDISPOSE()
RETURN NIL
FUNCTION GDIPLUSIMAGERESIZE()
RETURN NIL
FUNCTION GDIPLUSEMFTOJPG()
RETURN NIL
FUNCTION GDIPLUSIMAGECROP()
RETURN NIL
FUNCTION GDIPLUSEMFTOBMP()
RETURN NIL
FUNCTION GDIPLUSLOADDIRECTIMAGE()
RETURN NIL
FUNCTION GDIPLUSIMGGETFRAMECOUNT()
RETURN NIL
FUNCTION GDIPLUSIMGGETFRAME()
RETURN NIL
FUNCTION GDIPLUSBMPEMPTY()
RETURN NIL
Many thanks for your feedback and we apologize for the inconveniencies
- Antonio Linares
- Site Admin
- Posts: 42863
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 198 times
- Been thanked: 124 times
- Contact:
Re: xHarbour and latest FWH
Additionally this may be required too for xHB commercial:
Code: Select all | Expand
#pragma BEGINDUMP
#include <Windows.h>
#undef SetWindowLongPtr
long int SetWindowLongPtr( HWND hWnd, int nIndex, long int dwNewLong )
{
return SetWindowLong( hWnd, nIndex, ( LONG_PTR ) dwNewLong );
}
#pragma ENDDUMP
Re: xHarbour and latest FWH
Antonio,
Thank you for your reply.
I am not getting any unresolved externals as I I had added these functions from another post I saw here on the forum.
I also added dummy functions for
xLINK: error: Unresolved external symbol '_HB_FUN_HB_GETFILESINZIP referenced from FiveHMX.lib(olefuncs.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_HB_UNZIPFILE referenced from FiveHMX.lib(olefuncs.obj)'.
I also included the latest xfw.lib I saw posted here recently on the forum.
This is a copy of xbuilder log.
Type: C >>>xhb.exe -o"testdlg.c" -m -n -p -q -gc0 -I"D:\FWH\include" -I"D:\xHarbour\include" -I"D:\xHarbour\include\w32" "D:\fwh\samples\testdlg.prg"<<<
xHarbour 1.3.2 Intl. (SimpLex) (Build 20250311)
Copyright 1999-2025, http://www.xharbour.org http://www.harbour-project.org/
Generating object output to 'testdlg.obj'...
Type: C >>>xhb.exe -o"dummy2.c" -m -n -p -q -gc0 -I"D:\FWH\include" -I"D:\xHarbour\include" -I"D:\xHarbour\include\w32" "dummy2.prg"<<<
xHarbour 1.3.2 Intl. (SimpLex) (Build 20250311)
Copyright 1999-2025, http://www.xharbour.org http://www.harbour-project.org/
Generating object output to 'dummy2.obj'...
Type: C >>>xlink.exe -NOEXPOBJ -MAP -FORCE:MULTIPLE -NOIMPLIB -subsystem:windows -UNMANGLE -LIBPATH:"D:\FWH\lib" -LIBPATH:"D:\xHarbour\lib" -LIBPATH:"D:\xHarbour\c_lib" -LIBPATH:"D:\xHarbour\c_lib\win" "testdlg.obj" "dummy2.obj" "D:\fwh\lib\xfw.lib" "FiveHCM.lib" "FiveHMX.lib" "OptG.lib" "xhb.lib" "dbf.lib" "nsx.lib" "ntx.lib" "cdx.lib" "rmdbfcdx.lib" "ct3comm.lib" crt.lib kernel32.lib user32.lib winspool.lib ole32.lib oleaut32.lib odbc32.lib odbccp32.lib uuid.lib wsock32.lib ws2_32.lib wininet.lib advapi32.lib shlwapi.lib msimg32.lib mpr.lib OleDlg.lib version.lib comctl32.lib comdlg32.lib gdi32.lib shell32.lib winmm.lib lz32.lib Netapi32.lib -out:"testdlg.exe"<<<
This is a copy of my xbuider .xbp file.
CINI =
C_OUTPUTFOLDER =
DEFFILE =
INCLUDEFOLDERS =
LAUTORUN =
LDEBUG = .F.
LGUI = .T.
LIBFOLDERS =
LMT = .F.
LNOAUTOFWH = .F.
LPRG_CLASSICDEBUG = .F.
LPRG_DEBUG = .F.
LUSEDLL = .F.
MAPFILE =
MYC_FLAGS =
MYDEFINES =
MYLINK_FLAGS =
MYPRG_FLAGS =
MYRC_FLAGS =
MYSLY_FLAGS =
OUTPUTFOLDER =
PRG_OUTPUTFOLDER =
RC_OUTPUTFOLDER =
RUNARGUMENTS =
SLY_OUTPUTFOLDER =
STARTIN =
TARGETFOLDER =
[D:\fwh\samples\testdlg.prg]
MYC_FLAGS =
MYDEFINES =
MYPRG_FLAGS =
[dummy2.prg]
MYC_FLAGS =
MYDEFINES =
MYPRG_FLAGS =
[D:\fwh\lib\xfw.lib]
This is the xbuild.windows.ini file:
[xHB]
Root = D:\xHarbour\
LibFolder = D:\xHarbour\lib\
Flags = -m -n -p -q -gc0
Exe = xhb.exe
[xCC]
Root = D:\xHarbour\
Compile Flags = -Ot
Link Flags = -NOEXPOBJ -MAP -FORCE:MULTIPLE
[FWH]
Root = D:\FWH\
LibFolder = D:\FWH\lib
[GUI]
Root =
LibFolder =
Can you or anyone confirm that building the testdlg.prg sample using xHarbour/xbuildw.exe with the latest FWH works ok? Maybe I have some kind of link, flag, or environment problem?
Thanks,
Randal
Thank you for your reply.
I am not getting any unresolved externals as I I had added these functions from another post I saw here on the forum.
I also added dummy functions for
xLINK: error: Unresolved external symbol '_HB_FUN_HB_GETFILESINZIP referenced from FiveHMX.lib(olefuncs.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_HB_UNZIPFILE referenced from FiveHMX.lib(olefuncs.obj)'.
I also included the latest xfw.lib I saw posted here recently on the forum.
This is a copy of xbuilder log.
Type: C >>>xhb.exe -o"testdlg.c" -m -n -p -q -gc0 -I"D:\FWH\include" -I"D:\xHarbour\include" -I"D:\xHarbour\include\w32" "D:\fwh\samples\testdlg.prg"<<<
xHarbour 1.3.2 Intl. (SimpLex) (Build 20250311)
Copyright 1999-2025, http://www.xharbour.org http://www.harbour-project.org/
Generating object output to 'testdlg.obj'...
Type: C >>>xhb.exe -o"dummy2.c" -m -n -p -q -gc0 -I"D:\FWH\include" -I"D:\xHarbour\include" -I"D:\xHarbour\include\w32" "dummy2.prg"<<<
xHarbour 1.3.2 Intl. (SimpLex) (Build 20250311)
Copyright 1999-2025, http://www.xharbour.org http://www.harbour-project.org/
Generating object output to 'dummy2.obj'...
Type: C >>>xlink.exe -NOEXPOBJ -MAP -FORCE:MULTIPLE -NOIMPLIB -subsystem:windows -UNMANGLE -LIBPATH:"D:\FWH\lib" -LIBPATH:"D:\xHarbour\lib" -LIBPATH:"D:\xHarbour\c_lib" -LIBPATH:"D:\xHarbour\c_lib\win" "testdlg.obj" "dummy2.obj" "D:\fwh\lib\xfw.lib" "FiveHCM.lib" "FiveHMX.lib" "OptG.lib" "xhb.lib" "dbf.lib" "nsx.lib" "ntx.lib" "cdx.lib" "rmdbfcdx.lib" "ct3comm.lib" crt.lib kernel32.lib user32.lib winspool.lib ole32.lib oleaut32.lib odbc32.lib odbccp32.lib uuid.lib wsock32.lib ws2_32.lib wininet.lib advapi32.lib shlwapi.lib msimg32.lib mpr.lib OleDlg.lib version.lib comctl32.lib comdlg32.lib gdi32.lib shell32.lib winmm.lib lz32.lib Netapi32.lib -out:"testdlg.exe"<<<
This is a copy of my xbuider .xbp file.
CINI =
C_OUTPUTFOLDER =
DEFFILE =
INCLUDEFOLDERS =
LAUTORUN =
LDEBUG = .F.
LGUI = .T.
LIBFOLDERS =
LMT = .F.
LNOAUTOFWH = .F.
LPRG_CLASSICDEBUG = .F.
LPRG_DEBUG = .F.
LUSEDLL = .F.
MAPFILE =
MYC_FLAGS =
MYDEFINES =
MYLINK_FLAGS =
MYPRG_FLAGS =
MYRC_FLAGS =
MYSLY_FLAGS =
OUTPUTFOLDER =
PRG_OUTPUTFOLDER =
RC_OUTPUTFOLDER =
RUNARGUMENTS =
SLY_OUTPUTFOLDER =
STARTIN =
TARGETFOLDER =
[D:\fwh\samples\testdlg.prg]
MYC_FLAGS =
MYDEFINES =
MYPRG_FLAGS =
[dummy2.prg]
MYC_FLAGS =
MYDEFINES =
MYPRG_FLAGS =
[D:\fwh\lib\xfw.lib]
This is the xbuild.windows.ini file:
[xHB]
Root = D:\xHarbour\
LibFolder = D:\xHarbour\lib\
Flags = -m -n -p -q -gc0
Exe = xhb.exe
[xCC]
Root = D:\xHarbour\
Compile Flags = -Ot
Link Flags = -NOEXPOBJ -MAP -FORCE:MULTIPLE
[FWH]
Root = D:\FWH\
LibFolder = D:\FWH\lib
[GUI]
Root =
LibFolder =
Can you or anyone confirm that building the testdlg.prg sample using xHarbour/xbuildw.exe with the latest FWH works ok? Maybe I have some kind of link, flag, or environment problem?
Thanks,
Randal
- Antonio Linares
- Site Admin
- Posts: 42863
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 198 times
- Been thanked: 124 times
- Contact:
Re: xHarbour and latest FWH
Dear Randal,
It is our bug. It was introduced from FWH 24.09 to FWH 24.10.
With FWH 24.09 it works fine. We are reviewing the changes from 24.09 to 24.10
This bug only shows with xHarbour commercial. With free xHarbour it works fine.
I am going to email you FWH 24.09 so you can confirm that it works fine for you too.
Many thanks for your help
It is our bug. It was introduced from FWH 24.09 to FWH 24.10.
With FWH 24.09 it works fine. We are reviewing the changes from 24.09 to 24.10
This bug only shows with xHarbour commercial. With free xHarbour it works fine.
I am going to email you FWH 24.09 so you can confirm that it works fine for you too.
Many thanks for your help
- Antonio Linares
- Site Admin
- Posts: 42863
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 198 times
- Been thanked: 124 times
- Contact:
Re: xHarbour and latest FWH
When the app quits with no messages or logs usually it is due a GPF, so we redirect the GPF:
Code: Select all | Expand
function GPF()
hb_memoWrit( "gpf.log", cCallStack( CRLF, 1 ) )
return nil
Code: Select all | Expand
#pragma BEGINDUMP
#include <Windows.h>
#include <hbapi.h>
#include <hbvm.h>
#undef SetWindowLongPtr
LONG WINAPI GPFHandler( PEXCEPTION_POINTERS exceptionInfo )
{
hb_vmPushSymbol( hb_dynsymSymbol( hb_dynsymFindName( "GPF" ) ) );
hb_vmPushNil();
hb_vmDo( 0 );
return EXCEPTION_EXECUTE_HANDLER; // Maneja la excepción y termina
}
unsigned int SetWindowLongPtr( HWND hWnd, int nIndex, long int dwNewLong )
{
SetUnhandledExceptionFilter( GPFHandler );
return SetWindowLong( hWnd, nIndex, ( LONG_PTR ) dwNewLong );
}
#pragma ENDDUMP
Re: xHarbour and latest FWH
Antonio,
Everything works ok with FWH 2024.09.
I added the above functions to testdlg.prg and tried again with 2025.01. The program closed with no message and no gpf.log file was created.
Thanks,
Randal Ferguson
Everything works ok with FWH 2024.09.
I added the above functions to testdlg.prg and tried again with 2025.01. The program closed with no message and no gpf.log file was created.
Thanks,
Randal Ferguson
- Antonio Linares
- Site Admin
- Posts: 42863
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 198 times
- Been thanked: 124 times
- Contact:
Re: xHarbour and latest FWH
Dear Randal,
Bug located and fixed
I have emailed you a new FWH 25.04 build to test it
Many thanks for your feedback!
Bug located and fixed

I have emailed you a new FWH 25.04 build to test it
Many thanks for your feedback!
Re: xHarbour and latest FWH
Antonio,
Thank you for all your help and yes, the update works.
I did notice a difference in behavior when opening a mdi window.
In the Main function of the testmdi4.prg sample, I added the ON INIT clause to demonstrate what I'm talking about.
function Main()
local oBar
SET _3DLOOK ON
DEFINE WINDOW oWnd TITLE "MDIChilds from resources" MDI
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar ACTION child() //( Child(), MsgInfo( oWnd:oWndClient:aWnd[ 1 ]:cCaption ) )
ACTIVATE WINDOW oWnd maximized ;
ON INIT ( MSGINFO("On Init") ) // Added
return nil
When compiled with 202306, the mid window and buttonbar are displayed, then the msginfo dialog. When compiled with 2025.04 the msginfo dialog is displayed first and when you click Ok the mdi window and buttonbar are displayed.
My app opens with a mdi window and button bar and then I use the ON INIT clause to open a login dialog. Normally, the mdi window and button bar are displayed and then the login dialog on top of that. Now, the login dialog is displayed by itself as per the above example.
How can I achieve the previous behavior?
Thanks,
Randal Ferguson
Thank you for all your help and yes, the update works.
I did notice a difference in behavior when opening a mdi window.
In the Main function of the testmdi4.prg sample, I added the ON INIT clause to demonstrate what I'm talking about.
function Main()
local oBar
SET _3DLOOK ON
DEFINE WINDOW oWnd TITLE "MDIChilds from resources" MDI
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar ACTION child() //( Child(), MsgInfo( oWnd:oWndClient:aWnd[ 1 ]:cCaption ) )
ACTIVATE WINDOW oWnd maximized ;
ON INIT ( MSGINFO("On Init") ) // Added
return nil
When compiled with 202306, the mid window and buttonbar are displayed, then the msginfo dialog. When compiled with 2025.04 the msginfo dialog is displayed first and when you click Ok the mdi window and buttonbar are displayed.
My app opens with a mdi window and button bar and then I use the ON INIT clause to open a login dialog. Normally, the mdi window and button bar are displayed and then the login dialog on top of that. Now, the login dialog is displayed by itself as per the above example.
How can I achieve the previous behavior?
Thanks,
Randal Ferguson
- Antonio Linares
- Site Admin
- Posts: 42863
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 198 times
- Been thanked: 124 times
- Contact:
Re: xHarbour and latest FWH
Dear Randal,
You can do it this way:
You can do it this way:
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
local oBar
SET _3DLOOK ON
DEFINE WINDOW oWnd TITLE "MDIChilds from resources" MDI
oWnd:Maximize()
oWnd:Show()
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar // ACTION child() //( Child(), MsgInfo( oWnd:oWndClient:aWnd[ 1 ]:cCaption ) )
ACTIVATE WINDOW oWnd maximized ;
ON INIT ( MSGINFO("On Init") ) // Added
return nil
- karinha
- Posts: 8079
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 12 times
- Contact:
Re: xHarbour and latest FWH
Code: Select all | Expand
// C:\FWH\SAMPLES\MDISHOW.PRG
#include "FiveWin.ch"
STATIC oWnd, oWndChild
FUNCTION Main()
LOCAL oBar, oChild, oSalida
SET _3DLOOK ON
DEFINE WINDOW oWnd TITLE "MDIChilds from resources" MDI
DEFINE BUTTONBAR oBar BUTTONSIZE 50, 50 _3DLOOK TOP OF oWnd 2015
DEFINE BUTTON oChild OF OBAR PROMPT "Child()" ;
MESSAGE "Child" ;
ACTION( Child() ) ;
TOOLTIP "Child()" ;
NOBORDER GROUP
DEFINE BUTTON oSalida OF OBAR PROMPT "Exit" ;
MESSAGE "Salida" ;
ACTION( oWnd:End() ) ;
TOOLTIP "Salida" ;
NOBORDER GROUP
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT( oWnd:oMenu:End(), MsgInfo( "On Init" ) )
RETURN NIL
STATIC FUNCTION Child()
LOCAL cTitle
cTitle := ( oWnd:cCaption )
DEFINE WINDOW oWndChild MDICHILD FROM 0, 0 TO 32, 100 OF oWnd TITLE cTitle
ACTIVATE WINDOW oWndChild
RETURN NIL
// FIN / END
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341