Code: Select all
MsgBox( VALTYPE( GetProperty( "frmTest", "BACKCOLOR" ) ), "Frm BackColor" ) Where I'm wrong
Regards
--
Esgici
Moderator: Rathinagiri
Code: Select all
MsgBox( VALTYPE( GetProperty( "frmTest", "BACKCOLOR" ) ), "Frm BackColor" ) Code: Select all
aWinBackColor := frmGraps.BackColor
MsgBox( VALTYPE( frmGraps.BackColor ) )
etc
Code: Select all
nFormNo := GetFormIndex( "frmTest" )
_HMG_SYSDATA [ 79 , nFormNo ]
Sadly norathinagiri wrote:... when we change the background color it may be initialized.
Code: Select all
@ 100, 230 BUTTON btnTest CAPTION "&Test" ACTION TestBColor() Code: Select all
PROCEDURE TestBColor()
* aFormBColor := frmEraseLine.BackColor // Syntax Error
* aFormBColor := GetProperty( "frmEraseLine", "BACKCOLOR" )
* MsgBox( ValType( aFormBColor ) ) // U
* SetProperty( "frmEraseLine", "BACKCOLOR", { 0, 0, 0 } ) // NOP
* frmEraseLine.BackColor := { 0, 0, 0 } // Syntax Error
nFormNo := GetFormIndex( "frmEraseLine" )
_HMG_SYSDATA [ 79 , nFormNo ] := { 0, 0, 0 }
aFormBColor := _HMG_SYSDATA [ 79 , nFormNo ]
MsgBox ( LTRIM( STR( aFormBColor[ 1 ] ) ) + ", " + ;
LTRIM( STR( aFormBColor[ 2 ] ) ) + ", " + ;
LTRIM( STR( aFormBColor[ 3 ] ) ) )
RETURN // TestBColor()
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._
Code: Select all
hb_valtoexp(aFormBColor)
Code: Select all
#include <hmg.ch>
/* Hatch Styles */
#define HS_HORIZONTAL 0 /* ----- */
#define HS_VERTICAL 1 /* ||||| */
#define HS_FDIAGONAL 2 /* \\\\\ */
#define HS_BDIAGONAL 3 /* ///// */
#define HS_CROSS 4 /* +++++ */
#define HS_DIAGCROSS 5 /* xxxxx */
Function Main
DEFINE WINDOW Form_1 AT 249 , 292 WIDTH 550 HEIGHT 350 TITLE "Test of Change BackColor of main form" ICON NIL MAIN
DEFINE BUTTON Button_1
ROW 60
COL 240
WIDTH 100
HEIGHT 28
ACTION ChangeBackGround("Form_1",GetColor({236, 233, 216}))
CAPTION "Change color"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .T.
END BUTTON
DEFINE BUTTON Button_2
ROW 120
COL 240
WIDTH 100
HEIGHT 28
ACTION ChangeBackGround("Form_1","Wall.bmp")
CAPTION "Bitmap: Wall"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .T.
END BUTTON
DEFINE BUTTON Button_3
ROW 180
COL 240
WIDTH 100
HEIGHT 28
ACTION ChangeBackGround("Form_1",{0,200,0},2)
CAPTION "Hashed"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .T.
END BUTTON
DEFINE LABEL Label_1
ROW 290
COL 80
WIDTH 410
HEIGHT 30
VALUE "Our thanks to P.Chornyj, Grigory Filatov and Roberto Lopez"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP ""
FONTBOLD .T.
FONTITALIC .T.
CENTERALIGN .T.
END LABEL
END WINDOW
Form_1.Center
Form_1.Activate
Return Nil
Function ChangeBackGround(cWindow,xToChange,hatch)
Local i := GetFormIndex ( cWindow )
Local hWnd, oldBrush, Brush
hWnd := GetFormHandle (cWindow)
IF IsWindowHandler( hWnd )
If ValType(xToChange)="A"
If hatch=Nil
Brush := CreateSolidBrush( xToChange[1], xToChange[2], xToChange[3] )
Else
Brush := CreateHatchBrush( hatch, RGB( xToChange[1], xToChange[2], xToChange[3] ) )
Endif
Else
Brush := CreatePatternBrush( xToChange )
Endif
oldBrush := SetWindowBrush( hWnd, Brush )
DeleteObject( oldBrush )
ENDIF
erasewindow(cWindow)
If ValType(xToChange)="A"
SetProperty(cWindow,"Label_1","BackColor",xToChange)
Endif
Return Nil
/*
* C-level
*/
#pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"
HB_FUNC ( ISWINDOWHANDLER )
{
hb_retl( IsWindow( (HWND) hb_parnl(1) ) );
}
HB_FUNC ( GETWINDOWBRUSH )
{
hb_retnl( GetClassLong( (HWND) hb_parnl(1), GCL_HBRBACKGROUND ) );
}
HB_FUNC ( SETWINDOWBRUSH )
{
hb_retnl( SetClassLong( (HWND) hb_parnl(1), GCL_HBRBACKGROUND, (LONG) hb_parnl(2) ) );
}
HB_FUNC ( CREATEHATCHBRUSH )
{
hb_retnl( (LONG) CreateHatchBrush( hb_parnl(1), (COLORREF) hb_parnl(2) ) );
}
/*
Windows 95: Creating brushes from bitmaps or DIBs larger than 8x8 pixels is not supported.
If a larger bitmap is specified, only a portion of the bitmap is used.
*/
HB_FUNC ( CREATEPATTERNBRUSH )
{
HBITMAP himage;
himage = (HBITMAP) LoadImage( GetModuleHandle(NULL), hb_parc(1), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT );
if (himage == NULL)
{
himage = (HBITMAP) LoadImage( 0, hb_parc(1), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT );
}
hb_retnl( (LONG) CreatePatternBrush( himage ) );
}
#pragma ENDDUMPCode: Select all
/*
* MiniGUI Window BackColor Demo
* (c) 2005 Grigory Filatov
*/
#include "minigui.ch"
Static nColor := 1, ;
aColors := { { 255 , 255 , 0 } , { 255 , 128 , 192 } , { 255 , 0 , 0}, ;
{ 255 , 0 , 255 } , { 255 , 128 , 64 } , { 0 , 255 , 0}, ;
{ 128 , 0 , 128 } , { 255 , 255 , 255 } , { 128 , 128 , 128}, ;
{ 0 , 0 , 255 } , { 192 , 192 , 192 } }
Procedure Main
SET MULTIPLE OFF
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 ;
HEIGHT 480 ;
TITLE 'Set Window BackColor Demo (Contributed by Grigory Filatov)' ;
MAIN ;
BACKCOLOR WHITE
DEFINE TIMER Timer_1 INTERVAL 2000 ACTION SetBackColor()
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
Procedure SetBackColor()
nColor++
if nColor > Len(aColors)
nColor := 1
endif
ThisWindow.BackColor := aColors[nColor]
Return
Thanks PabloPablo César wrote:I got it in HMG !!!
Code: Select all
/*
* MiniGUI Window BackColor Demo
* (c) 2005 Grigory Filatov
*/
#include <hmg.ch>
Static nColor := 1, ;
aColors := { { 255 , 255 , 0 } , { 255 , 128 , 192 } , { 255 , 0 , 0 }, ;
{ 255 , 0 , 255 } , { 255 , 128 , 64 } , { 0 , 255 , 0 }, ;
{ 128 , 0 , 128 } , { 255 , 255 , 255 } , { 128 , 128 , 128 }, ;
{ 0 , 0 , 255 } , { 192 , 192 , 192 } }
Function Main()
SET MULTIPLE OFF
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 ;
HEIGHT 480 ;
TITLE 'Set Window BackColor Demo (Contributed by Grigory Filatov)' ;
MAIN ;
BACKCOLOR WHITE
DEFINE TIMER Timer_1 INTERVAL 2000 ACTION ChangeBackGround("Form_1",SetBackColor())
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return Nil
Function SetBackColor()
nColor++
if nColor > Len(aColors)
nColor := 1
endif
// ThisWindow.BackColor := aColors[nColor]
Return aColors[nColor]
Function ChangeBackGround(cWindow,aColor)
Local i := GetFormIndex ( cWindow )
Local hWnd, oldBrush, Brush
hWnd := GetFormHandle (cWindow)
IF IsWindowHandler( hWnd )
Brush := CreateSolidBrush( aColor[1], aColor[2], aColor[3] )
oldBrush := SetWindowBrush( hWnd, Brush )
DeleteObject( oldBrush )
ENDIF
erasewindow(cWindow)
Return Nil
/*
* C-level
*/
#pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"
HB_FUNC ( ISWINDOWHANDLER )
{
hb_retl( IsWindow( (HWND) hb_parnl(1) ) );
}
HB_FUNC ( SETWINDOWBRUSH )
{
hb_retnl( SetClassLong( (HWND) hb_parnl(1), GCL_HBRBACKGROUND, (LONG) hb_parnl(2) ) );
}
#pragma ENDDUMPYou are welcome, my friend !esgici wrote:Thanks PabloPablo César wrote:I got it in HMG !!!
saudação