Enrico
I agree, i think we need Antonio for this now
Richard
Enrico
I agree, i think we need Antonio for this now
Richard
Antonio is with TheFull now!!!!
#include "fivewin.ch"
function main()
local oDlg, oChk, oGet1, oGet2
local bNew, bEdit, bSave, bCancel
local lChk1, lChk2, lChk3
local lEdit := .f.
local cJob := ''
local cRevCode := Spac( 10 )
local cDesc := Spac( 30 )
bnew := {|| lEdit := .T., cJob := 'NEW', oDlg:update(), ;
oDlg:aEvalWhen(), oGet1:setFocus() }
bEdit := {|| lEdit := .T., cJob := 'EDIT', ;
oDlg:update(), oDlg:aEvalWhen(), ;
oGet2:setFocus() }
bSave := {|| oDlg:update(), lEdit := .F., cJob := '', oDlg:aEvalWhen() }
bCancel := {|| lEdit := .F., cJob := '', oDlg:aEvalWhen(), oDlg:update(), .F. }
DEFINE DIALOG oDlg RESOURCE "RevCode" TRANSPARENT COLOR CLR_BLUE, RGB(240,240,240)
REDEFINE BUTTONBMP ID 127 OF oDlg ACTION EVAL( bNew ) WHEN ! lEdit
REDEFINE BUTTONBMP ID 128 OF oDlg ACTION Eval( bEdit ) WHEN ! lEdit
REDEFINE BUTTONBMP ID 129 OF oDlg WHEN ! lEdit
REDEFINE BUTTONBMP ID 132 OF oDlg ACTION Eval( bSave ) WHEN lEdit
REDEFINE BUTTONBMP ID 133 OF oDlg ACTION Eval( bCancel ) WHEN lEdit
REDEFINE GET oGet1 VAR cRevCode ID 101 OF oDlg UPDATE WHEN lEdit .AND. cJob = 'NEW'
REDEFINE GET oGet2 VAR cDesc ID 102 OF oDlg UPDATE WHEN lEdit
REDEFINE CHECKBOX oChk VAR lchk1 ID 106 OF oDlg UPDATE ;
WHEN lEdit
oChk:bChange := { || oDlg:Update() }
REDEFINE CHECKBOX lChk2 ID 107 OF oDlg UPDATE ;
WHEN lEdit .and. lChk1
REDEFINE CHECKBOX lChk3 ID 108 OF oDlg UPDATE ;
WHEN lEdit .and. lChk1
REDEFINE BUTTONBMP ID 126 OF oDlg ACTION oDlg:END() WHEN ! lEdit
ACTIVATE DIALOG oDlg ;
VALID IF( GetKeyState(VK_ESCAPE) .AND. lEdit, ;
EVAL( bCancel ), .t. )
RETURN NILREVCODE DIALOG 30, 21, 405, 101
STYLE DS_3DLOOK |DS_SETFONT |DS_MODALFRAME |WS_POPUP |WS_VISIBLE |WS_SYSMENU |WS_CAPTION
CAPTION "Centros de Costo"
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, 0
BEGIN
CONTROL "",1001,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,9,20,392,53
CONTROL "",101,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,100,28,92,12
CONTROL "",102,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,100,42,169,12
CONTROL " Nuevo",127,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,6,7,50,14
CONTROL " Modificar",128,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,60,7,50,14
CONTROL " Grabar",132,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,167,7,50,14
CONTROL " Cancelar",133,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,221,7,50,14
CONTROL " Salir",126,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,348,78,50,14
CONTROL "Centro De Costo",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,31,75,8
CONTROL "Descripción",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,44,75,8
CONTROL " Eliminar",0,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,73,289,50,14
CONTROL " Eliminar",129,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,113,7,50,14
CONTROL "Crear Orden",106,"BUTTON",BS_CHECKBOX |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,305,31,70,10
CONTROL "Imprimir Orden",107,"BUTTON",BS_CHECKBOX |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,305,42,70,10
CONTROL "Imprimir Etiqueta",108,"BUTTON",BS_CHECKBOX |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,305,54,70,10
END

Reinaldo
I have tested your sample and the problem shows obviously , the only solution i found is to link my modified control.prg that I published , the problem disappears and checkbox show ok
HTH
Richard
I will be back tomorrow morning in my office and I will personally check it, thanks! ![]()
Thank you Master!
EMG
Antonio,
on x,y source code run ok the problem is only on resources !!!!!!!!!!
Antonio,
I tested the original examples in FWH\samples regarding the RADIO controll problems .
testrad resource in RC -> OK
testrad2 no resource -> ERROR
testrad3 rsource in DLL -> OK
testrad5 no resource -> ERROR
testrad6 no resource -> OK
I use :WindowsXP , FW 11.04 ,xHArbour , BCC 582 .
This problem has been around for a long time and now we need a solution.
Maurizio
Enrico Maria Giordano wrote:the first thing we have to know is what DrawPBack() is for.
#include "Fivewin.ch"
FUNCTION MAIN()
TEST1()
TEST2()
RETURN NIL
STATIC FUNCTION TEST1()
LOCAL oDlg
LOCAL oCk1, lCk1 := .F.
LOCAL oCk2, lCk2 := .F.
LOCAL oRad, nRad := 1
DEFINE DIALOG oDlg;
RESOURCE "TEST1";
TRANSPARENT
REDEFINE CHECKBOX oCk1 VAR lCk1;
ID 101 OF oDlg
REDEFINE CHECKBOX oCk2 VAR lCk2;
ID 102 OF oDlg
REDEFINE RADIO oRad VAR nRad;
ID 103, 104 OF oDlg
ACTIVATE DIALOG oDlg;
ON INIT GRADIENTBRUSH( oDlg, ACLRGRAD() );
CENTER
RETURN NIL
STATIC FUNCTION TEST2()
LOCAL oDlg, oFld
LOCAL oCk1, lCk1 := .F.
LOCAL oCk2, lCk2 := .F.
LOCAL oRad, nRad := 1
DEFINE DIALOG oDlg;
RESOURCE "TEST2F"
REDEFINE FOLDER oFld;
ID 101 OF oDlg;
PROMPTS "Test 2";
DIALOGS "TEST2D"
REDEFINE CHECKBOX oCk1 VAR lCk1;
ID 101 OF oFld:aDialogs[ 1 ]
REDEFINE CHECKBOX oCk2 VAR lCk2;
ID 102 OF oFld:aDialogs[ 1 ]
REDEFINE RADIO oRad VAR nRad;
ID 103, 104 OF oFld:aDialogs[ 1 ]
ACTIVATE DIALOG oDlg;
CENTER
RETURN NIL
STATIC FUNCTION GRADIENTBRUSH( oDlg, aColors )
LOCAL hDC, hBmp, hBmpOld, oBrush
hDC = CREATECOMPATIBLEDC( oDlg:GetDC() )
hBmp = CREATECOMPATIBLEBITMAP( oDlg:hDC, oDlg:nWidth, oDlg:nHeight )
hBmpOld = SELECTOBJECT( hDC, hBmp )
GRADIENTFILL( hDC, 0, 0, oDlg:nHeight, oDlg:nWidth, aColors )
oBrush = TBrush():New( ,,,, hBmp )
oDlg:SetBrush( oBrush )
AEVAL( oDlg:aControls, { | oCtl | If( oCtl:lTransparent, oCtl:SetBrush( oDlg:oBrush ), ) } )
RELEASE BRUSH oBrush
SELECTOBJECT( hDC, hBmpOld )
DELETEDC( hDC )
oDlg:ReleaseDC()
RETURN NIL
STATIC FUNCTION ACLRGRAD()
RETURN { { 1, RGB( 216, 230, 238 ), RGB( 103, 154, 194 ) } }::oWnd:Refresh( .f. ) // EMG commented out to avoid flicker// ::Refresh( .f. ) // EMG commented out to avoid flicker#pragma BEGINDUMP
#include <windows.h>
HMODULE GetResources( void );
HMODULE GetInstance( void );
HB_FUNC( ISMANIFEST )
{
static BOOL bInit = FALSE;
static BOOL bIsThemed = FALSE;
if( ! bInit )
{
WIN32_FIND_DATA fd;
bInit = TRUE;
bIsThemed = ( ( ( BOOL ) FindResource( GetResources(), MAKEINTRESOURCE( 1 ),
MAKEINTRESOURCE( 24 ) ) ) ||
( ( BOOL ) FindResource( GetInstance(), MAKEINTRESOURCE( 1 ),
MAKEINTRESOURCE( 24 ) ) ) );
if( ! bIsThemed )
{
char AppName[ 256 ];
HANDLE hFind;
GetModuleFileName( NULL, AppName, 255 );
lstrcat( AppName, ".Manifest" );
if( ( hFind = FindFirstFile( AppName, &fd ) ) != INVALID_HANDLE_VALUE )
{
bIsThemed = TRUE;
FindClose( hFind );
}
}
}
hb_retl( bIsThemed );
}
#pragma ENDDUMP if IsAppThemed() .and. Upper( ::ClassName() ) $ "TCHECKBOX;TRADIO;TGROUP"
DrawPBack( ::hWnd, hDC )
endif if IsAppThemed() .and. IsManifest() .and. Upper( ::ClassName() ) $ "TCHECKBOX;TRADIO;TGROUP"
DrawPBack( ::hWnd, hDC )
endif if ::lTransparent .and. ( ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" ) )
::oWnd:Refresh( .f. ) // EMG commented out to avoid flicker
endif if ::lTransparent .and. !IsManifest() .and. ( ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" ) )
::oWnd:Refresh( .f. ) // EMG commented out to avoid flicker
endifCiao Enrico,
dall'esempio TEST1.PRG manca TEST1.TC
Maurizio
TEST1 DIALOG 37, 56, 160, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Test 1"
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
CONTROL "Checkbox:", 101, "BUTTON", BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 10, 50, 12
CONTROL "Checkbox:", 102, "BUTTON", BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 25, 50, 12
CONTROL "Radio:", 103, "BUTTON", BS_AUTORADIOBUTTON | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE, 10, 45, 50, 12
CONTROL "Radio:", 104, "BUTTON", BS_AUTORADIOBUTTON | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE, 10, 60, 50, 12
}
TEST2D DIALOG 37, 56, 145, 80
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
CONTROL "Checkbox:", 101, "BUTTON", BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 10, 50, 12
CONTROL "Checkbox:", 102, "BUTTON", BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 25, 50, 12
CONTROL "Radio:", 103, "BUTTON", BS_AUTORADIOBUTTON | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE, 10, 45, 50, 12
CONTROL "Radio:", 104, "BUTTON", BS_AUTORADIOBUTTON | BS_LEFTTEXT | WS_CHILD | WS_VISIBLE, 10, 60, 50, 12
}
TEST2F DIALOG 96, 44, 180, 115
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Test 2"
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
CONTROL "", 101, "SysTabControl32", 0 | WS_CHILD | WS_VISIBLE, 5, 5, 170, 105
}