New Arrangement of MSGWAIT- ALERT- and YESNO-function
Posted: Wed Apr 27, 2011 12:01 pm
Hello,
because I don't like the normal MsgWait-function ( no Brush, no Linefeed, no Font ... )
I created new visual Styles.
The Msg-Size is calculated from : the longest Text, Fontsize and given Space between Textlines
![Image](http://www.pflegeplus.com/pictures/msgwait1.jpg)
![Image](http://www.pflegeplus.com/pictures/msgwait2.jpg)
@ 190, 465 BTNBMP oBtn9 FILENAME c_path + "\Bitmaps\Rename.bmp" ;
SIZE 42, 38 OF oDlg1 PIXEL NOBORDER ;
TOP ;
PROMPT " &Rename" ;
FONT oTxtfont ;
ACTION ( IMG_RENAME(), ;
MSG_INFO(oBrush3, oTxtfont, ;
"Rename-info :", ;
"File " + cReadImg + "\" + cFileNoPath( cImgname ), ;
"renamed to ", ;
"File " + cReadImg + "\" + cNewImg + "." + cFileExt( cImgname ) , ;
3000, 8388608, 10, 50, 50 ) )
Function :
MSG_INFO( ;
oBrush, ; // Brush
oFont, ; // Font
cTitle, ; // MsgTitle
cText1, ; // MsgText 1
cText2, ; // MsgText 2
cText3, ; // MsgText 3
nIntervall, ; // Timer
nTxtColor, ; // Textcolor
nSpace, ; // Space between Text
nMsgTop, ; // MsgTop
nMsgLeft ) // Msg Left
A visual Alert with selected Brush and Images !
( MSG_YESNO will be the same, but with two Button and Returns .T. or .F. )
![Image](http://www.pflegeplus.com/pictures/Alert3.jpg)
Function ( 48 x 48 BMP's are used )
MSG_ALERT( ;
oBrush, ; // Brush
oFont, ; // Font
cTitle, ; // MsgTitle
cText1, ; // MsgText 1
cText2, ; // MsgText 2
cText3, ; // MsgText 3
nTxtColor, ; // Textcolor
nSpace, ; // Space between Text
nMsgTop, ; // MsgTop
nMsgLeft, ; // Headline BMP
cImage )
Best Regards
Uwe![Laughing :lol:](./images/smilies/icon_lol.gif)
because I don't like the normal MsgWait-function ( no Brush, no Linefeed, no Font ... )
I created new visual Styles.
The Msg-Size is calculated from : the longest Text, Fontsize and given Space between Textlines
![Image](http://www.pflegeplus.com/pictures/msgwait1.jpg)
![Image](http://www.pflegeplus.com/pictures/msgwait2.jpg)
@ 190, 465 BTNBMP oBtn9 FILENAME c_path + "\Bitmaps\Rename.bmp" ;
SIZE 42, 38 OF oDlg1 PIXEL NOBORDER ;
TOP ;
PROMPT " &Rename" ;
FONT oTxtfont ;
ACTION ( IMG_RENAME(), ;
MSG_INFO(oBrush3, oTxtfont, ;
"Rename-info :", ;
"File " + cReadImg + "\" + cFileNoPath( cImgname ), ;
"renamed to ", ;
"File " + cReadImg + "\" + cNewImg + "." + cFileExt( cImgname ) , ;
3000, 8388608, 10, 50, 50 ) )
Function :
MSG_INFO( ;
oBrush, ; // Brush
oFont, ; // Font
cTitle, ; // MsgTitle
cText1, ; // MsgText 1
cText2, ; // MsgText 2
cText3, ; // MsgText 3
nIntervall, ; // Timer
nTxtColor, ; // Textcolor
nSpace, ; // Space between Text
nMsgTop, ; // MsgTop
nMsgLeft ) // Msg Left
Code: Select all
FUNCTION MSG_INFO(oBrush, oFont, cTitle, cTxt1, cTxt2, cTxt3, nIntervall, nColor, nSpace, nTop, nLeft)
LOCAL oDlg, nMsgTW := 300, nMsgTH := 20, nDlgWidth := 300, nDlgHeight := 100
LOCAL nMsgTW1 := 10, nMsgTW2 := 10, nMsgTW3 := 10, nMsgTW4 := 10
//ACTION ( Img_Rename(), ; // Function
//MSG_INFO(oBrush3, oTxtfont, ; // Message
//"Rename-info :", ;
//"File 1", ;
//"renamed to ", ;
//"File 2", ;
//2000, 8388608, 20, 90, 50 ) ) // Intervall, Text-color, Line-space, MsgTop, MsgLeft
DEFINE DIALOG oDlg FROM nTop, nLeft TO 590, 159 PIXEL TRANSPARENT ;
STYLE WS_POPUP BRUSH TBrush():New( "NULL" )
nMsgTW1 := oDlg:GetWidth( cTitle, oFont )
nMsgTW2 := oDlg:GetWidth( cTxt1, oFont )
nMsgTW3 := oDlg:GetWidth( cTxt2, oFont )
nMsgTW4 := oDlg:GetWidth( cTxt3, oFont )
nMsgTW := MAX( nMsgTW1, nMsgTW2 )
nMsgTW := MAX( nMsgTW, nMsgTW3 )
nMsgTW := MAX( nMsgTW, nMsgTW4 )
nMsgTH := oFont:nHeight()
nDlgHeight := ( 6 * nSpace ) + ( 4 * nMsgTH )
nDlgWidth := nMsgTW + 40
ACTIVATE DIALOG oDlg NOWAIT ;
ON INIT ( SETTRANSP( oDlg ), ;
oDlg:Move( nTop, nLeft, nDlgWidth, nDlgHeight, .f. ), ;
MSG_INFO1(oDlg, oBrush, oFont, cTitle, cTxt1, cTxt2, cTxt3, ;
nColor, nMsgTH, nSpace, nDlgWidth, nDlgHeight), ;
SET_TMR(oDlg,nIntervall) )
RETURN( NIL )
// -------------------
FUNCTION MSG_INFO1(oDlg, oBrush, oFont, cTitle, cTxt1, cTxt2, cTxt3, nColor, nMsgTH, nSpace, nDlgWidth, nDlgHeight)
LOCAL oTitle
@ 0, 0 TITLE oTitle SIZE nDlgWidth, nDlgHeight OF oDlg SHADOW ROUND
oTitle:aGrdBack := {}
SET BRUSH OF oTitle TO oBrush
oTitle:nClrLine1 := 8388608
@ 2 * nSpace, 30 TITLETEXT OF oTitle TEXT cTitle FONT ofont COLOR nColor
@ 3 * nSpace + nMsgTH , 30 TITLETEXT OF oTitle TEXT cTxt1 FONT oFont COLOR nColor
@ ( 4 * nSpace ) + ( 2 * nMsgTH ) , 30 TITLETEXT OF oTitle TEXT cTxt2 FONT oFont COLOR nColor
@ ( 5 * nSpace ) + ( 3 * nMsgTH ), 30 TITLETEXT OF oTitle TEXT cTxt3 FONT oFont COLOR nColor
RETURN( NIL )
// -----------------
FUNCTION SET_TMR(oDlg,nIntervall)
LOCAL oTmr, lActive := .F.
DEFINE TIMER oTmr INTERVAL nIntervall ACTION MSG_INFO2(oDlg, lActive) OF oDlg
ACTIVATE TIMER oTmr
RETURN( NIL )
// -----------------
FUNCTION MSG_INFO2(oDlg, lActive)
IF ! lActive
lActive = .t.
oDlg:End()
lActive = .f.
ENDIF
RETURN( NIL )
// Activate for older FWH-versions
//-------------------------------------------
#define LWA_COLORKEY 1
#define GWL_EXSTYLE -20
#define WS_EX_LAYERED 524288
STATIC FUNCTION SETTRANSP( oDlg )
SETWINDOWLONG( oDlg:hWnd, GWL_EXSTYLE, NOR( GETWINDOWLONG( oDlg:hWnd, GWL_EXSTYLE ), WS_EX_LAYERED ) )
SETLAYEREDWINDOWATTRIBUTES( oDlg:hWnd, , , LWA_COLORKEY )
RETURN NIL
( MSG_YESNO will be the same, but with two Button and Returns .T. or .F. )
![Image](http://www.pflegeplus.com/pictures/Alert3.jpg)
Function ( 48 x 48 BMP's are used )
MSG_ALERT( ;
oBrush, ; // Brush
oFont, ; // Font
cTitle, ; // MsgTitle
cText1, ; // MsgText 1
cText2, ; // MsgText 2
cText3, ; // MsgText 3
nTxtColor, ; // Textcolor
nSpace, ; // Space between Text
nMsgTop, ; // MsgTop
nMsgLeft, ; // Headline BMP
cImage )
Code: Select all
...
...
MSG_ALERT(oBrush3, oTxtfont, ;
"Attention", ;
"No Images in : " + cFilePath( cImgname ), ;
"with = > " + cSeek + " ???", ;
"found !!! ", 8388608, 12, 78, 165, ;
c_path + "\Bitmaps\Warning.bmp" )
...
...
// ------------------------
FUNCTION MSG_ALERT(oBrush, oFont, cTitle, cTxt1, cTxt2, cTxt3, ;
nColor, nSpace, nTop, nLeft, cImage)
LOCAL oDlg, nMsgTW := 300, nMsgTH := 20, nDlgWidth := 300, nDlgHeight := 100
LOCAL nMsgTW1 := 10, nMsgTW2 := 10, nMsgTW3 := 10, nMsgTW4 := 10
DEFINE DIALOG oDlg FROM nTop, nLeft TO 590, 159 PIXEL TRANSPARENT ;
STYLE WS_POPUP BRUSH TBrush():New( "NULL" )
nMsgTW1 := oDlg:GetWidth( cTitle, oFont )
nMsgTW2 := oDlg:GetWidth( cTxt1, oFont )
nMsgTW3 := oDlg:GetWidth( cTxt2, oFont )
nMsgTW4 := oDlg:GetWidth( cTxt3, oFont )
nMsgTW := MAX( nMsgTW1, nMsgTW2 )
nMsgTW := MAX( nMsgTW, nMsgTW3 )
nMsgTW := MAX( nMsgTW, nMsgTW4 )
nMsgTH := oFont:nHeight()
IF EMPTY( cImage )
nDlgHeight := ( 7 * nSpace ) + ( 4 * nMsgTH )
ELSE
nDlgHeight := ( 7 * nSpace ) + ( 4 * nMsgTH ) + 70
ENDIF
nDlgWidth := nMsgTW + 40
ACTIVATE DIALOG oDlg ;
ON INIT ( SETTRANSP( oDlg ), ;
oDlg:Move( nTop, nLeft, nDlgWidth, nDlgHeight, .f. ), ;
MSG_ALERT1(oDlg, oBrush, oFont, cTitle, cTxt1, cTxt2, cTxt3, ;
nColor, nMsgTH, nSpace, nDlgWidth, nDlgHeight, cImage) )
RETURN( NIL )
// -------------------
FUNCTION MSG_ALERT1(oDlg, oBrush, oFont, cTitle, cTxt1, cTxt2, cTxt3, ;
nColor, nMsgTH, nSpace, nDlgWidth, nDlgHeight, cImage)
LOCAL oTitle, oBmp, oBtn
@ 0, 0 TITLE oTitle SIZE nDlgWidth, nDlgHeight -10 OF oDlg SHADOW ROUND
oTitle:aGrdBack := {}
SET BRUSH OF oTitle TO oBrush
oTitle:nClrLine1 := 8388608
IF EMPTY(cImage)
@ 2 * nSpace, 30 TITLETEXT OF oTitle TEXT cTitle FONT ofont COLOR nColor
@ 3 * nSpace + nMsgTH , 30 TITLETEXT OF oTitle TEXT cTxt1 FONT oFont COLOR nColor
@ ( 4 * nSpace ) + ( 2 * nMsgTH ) , 30 TITLETEXT OF oTitle TEXT cTxt2 FONT oFont COLOR nColor
@ ( 5 * nSpace ) + ( 3 * nMsgTH ), 30 TITLETEXT OF oTitle TEXT cTxt3 FONT oFont COLOR nColor
ELSE
@ 2 * nSpace, 25 BITMAP oBmp FILENAME cImage OF oTitle ADJUST SIZE 48, 48 PIXEL NOBORDER
@ 2 * nSpace + 25, 80 TITLETEXT OF oTitle TEXT cTitle FONT ofont COLOR nColor
@ 3 * nSpace + nMsgTH + 25, 30 TITLETEXT OF oTitle TEXT cTxt1 FONT oFont COLOR nColor
@ ( 4 * nSpace ) + ( 2 * nMsgTH ) + 25 , 30 TITLETEXT OF oTitle TEXT cTxt2 FONT oFont COLOR nColor
@ ( 5 * nSpace ) + ( 3 * nMsgTH ) + 25, 30 TITLETEXT OF oTitle TEXT cTxt3 FONT oFont COLOR nColor
ENDIF
@ ( 6 * nSpace ) + ( 3 * nMsgTH ) + 30, nDlgWidth - 60 BTNBMP oBtn FILENAME c_path + "\Bitmaps\Close.bmp" ;
SIZE 55, 55 OF oTitle PIXEL ROUND NOBORDER ;
ACTION ( oDlg:End() )
oBtn:cTooltip := "Exit Alert"
oBtn:lTransparent := .T.
oBtn:l2007 := .F.
RETURN( NIL )
Uwe
![Laughing :lol:](./images/smilies/icon_lol.gif)