TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post Reply
User avatar
concentra
Posts: 107
Joined: Mon Nov 14, 2005 10:15 am
Location: Brazil

TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post by concentra »

Hi.
I need some help.
Migrating from an old FW version to 2015/10 MinGW found a problem with bitmapped buttons.
The following code used to work but now rises this error:

Code: Select all

Application
===========
   Path and name: c:\work\FWTeste.exe (32 bits)
   Size: 5,194,380 bytes
   Compiler version: Harbour 3.2.0dev (r1508011114)
   FiveWin  Version: FWH 15.10
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 0 secs 
   Error occurred at: 12/10/15, 17:10:10
   Error description: Error BASE/1066  Argument error: conditional
   Args:
     [   1] = U   

Stack Calls
===========
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CHECKTHEME( 0 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:REDEFINE( 0 )
   Called from: FWTeste.PRG => MAIN( 32 )
 
Reduced sample code:

Code: Select all

# INCLUDE "fivewin.ch"

/*****/
FUNCTION Main()
/*****/

LOCAL cGet := "    "
LOCAL lOk
LOCAL oDlg

   DEFINE DIALOG oDLG RESOURCE 4303

   REDEFINE GET oGET     VAR cGET       ID 113  OF oDLG

   TBtnBmp():ReDefine( 1,;                                  //nId,;
                       "btnYes",;                           //cResName1,;
                       ,;                                   //cResName2,;
                       ,;                                   //cBmpFile1,;
                       ,;                                   //cBmpFile2,;
                       ,;                                   //cMsg,;
                       { || oDLG:END() } ,;                 //bAction,;
                       oDLG ,;                              //oBar,;
                       ,;                                   //lAdjust,;
                       ,;                                   //bWhen,;
                       ,;                                   //lUpdate,;
                       ,;                                   //cToolTip,;
                       "Ok",;                               //cPrompt,;
                       ,;                                   //oFont,;
                       ,;                                   //cResName3,;
                       ,;                                   //cBmpFile3,;
                       ,;                                   //lBorder,;
                       "LEFT" )                             //cLayout,;
                                                            //cResName4,;
                                                            //cBmpFile4,;
                                                            //lTransparent,;
                                                            //lRound,;
                                                            //bGradColors )

   ACTIVATE DIALOG oDLG CENTER

Return NIL 
RC File:

Code: Select all

#include "winuser.h"
#include "winnt.h"
#include "commctrl.h"

LANGUAGE LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN

4303 DIALOGEX 36,25,384,333
CAPTION "Altera"
FONT 8,"MS Sans Serif",0,0,0
STYLE WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|DS_MODALFRAME|DS_3DLOOK
BEGIN
  CONTROL "",113,"Edit",WS_VISIBLE|WS_BORDER|WS_TABSTOP|ES_PASSWORD,149,28,51,13
  CONTROL "Button",1,"Button",WS_VISIBLE|WS_TABSTOP|BS_DEFPUSHBUTTON,244,312,54,17
END 
Regards,
Maurício Ventura Faria
User avatar
concentra
Posts: 107
Joined: Mon Nov 14, 2005 10:15 am
Location: Brazil

Re: TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post by concentra »

Hi Enrico, thanks for your attention.
Enrico Maria Giordano wrote:between cLayout and cResName4 there is l2007.
Reviewing, I saw it in the code. But since this parameter is not passed I am afraid this is not relevant.
Does this sample code run in your environment ?

Regards,

Maurício Ventura Faria
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post by Antonio Linares »

Mauricio,

If you code it this way then it properly works:

REDEFINE BTNBMP oBtn PROMPT "Ok" ID 1 OF oDlg ACTION oDlg:End()

Looking at the .ppo file we get:

oBtn := TBtnBmp():ReDefine( 1,,,,,, {|Self|oDlg:End()}, oDlg, .F.,, .F.,, "Ok",,,,,, .F.,,, .F., !.F., )

it looks different from yours
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
concentra
Posts: 107
Joined: Mon Nov 14, 2005 10:15 am
Location: Brazil

Re: TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post by concentra »

Hi Antonio,
Antonio Linares wrote:If you code it this way then it properly works:

REDEFINE BTNBMP oBtn PROMPT "Ok" ID 1 OF oDlg ACTION oDlg:End()

Looking at the .ppo file we get:

oBtn := TBtnBmp():ReDefine( 1,,,,,, {|Self|oDlg:End()}, oDlg, .F.,, .F.,, "Ok",,,,,, .F.,,, .F., !.F., )

it looks different from yours
This used to work and I use this syntax a lot.
The problem seems to be introduced by the lTransparent property that is not properly set to the default value when the ReDefine method is called.
The New and NewBar methods do.

Regards.
Last edited by concentra on Fri Dec 11, 2015 9:41 am, edited 1 time in total.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post by Antonio Linares »

Mauricio,

Ok, we can fix it. Thanks
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: TBTNBMP:CHECKTHEME() Error BASE/1066 Argument: conditional

Post by nageswaragunupudi »

Please add lTransparent := .f. to the list of defaults. We'll also do the same in the libs.

That solves the issue for this application in this case.
Regards

G. N. Rao.
Hyderabad, India
Post Reply