Page 1 of 2

SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 1:13 am
by sysctrl2
FWH Power :)

Image

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 9:03 am
by jvtecheto
Impresionante amigo.

Te felicito. :P

Desde luego se puede hacer todo con Fivewin.

Jose.

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 11:52 am
by karinha
Mui bién. Very good. Evolution now. Regards, saludos.

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 6:22 pm
by sysctrl2
Gracias José
Gracias Karinha
saludos

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 6:55 pm
by karinha
Iniciando César. Muchas gracias.

https://imgur.com/5UcSNZR

Image

Regards, saludos.

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 7:02 pm
by karinha
César, dime se está bién. Puede criticar sin problemas.

Download completo:

https://mega.nz/file/8Q0SiK7A#yU2nPyZ6ODEZZJ336UiA9-1Pl23doDTmtknJQ0CycD8

Regards, saludos.

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 7:04 pm
by karinha
Codigo modificado:

Code: Select all | Expand


// C:\TMETRO - BY Cesar SysCtrl Software 2021 - Muchas Gracias.
// METROWIN.PRG - Version 1.0 by Joao Santos - kapiabafwh@gmail.com - 10/09/2021
// Comenzar a aprender en la PANTALLA TACTIL: Me Encanta Fivewin.

/* // Original:
* SysCtrl Terminal Punto de Venta
* 01-Jun-2021
* BY Cesar SysCtrl Software 2021
* en este proyecto ya no usamos connect.ini
* la connexion la controlamos desde codigo
* Special thanks To: Cesar SysCtrl Software 2021
* Modificado em: 10/09/2021 - by Joao Santos - Covid 19 - Quarentine.
*/


#Include "Ambienty.ch"
#Include "xBrowse.ch"
#Include "Metropnl.ch"
// #Include ".\includes\scs.CH"

STATIC oMetro, oTools, oWait
STATIC nClrBack   := CLR_GREEN

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

ANNOUNCE RDDSYS
REQUEST OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto
REQUEST DBFCDX, DBFFPT

FUNCTION Main()

   LOCAL oWnd, oBar, oMetro, oBrush, cTitle := "Start", oServer, oQru, nRows

   DEFINE WINDOW oWnd TITLE cTitle STYLE nOr( WS_POPUP, WS_MAXIMIZE )        ;
      COLOR CLR_WHITE, CLR_GREEN ICON "TIMAO"

   oMetro := MakeMetroPanel( oWnd ) // MENU

   DEFINE BRUSH oBrush FILE '.\BACKUP.jpg' RESIZE UPDATE

   oMetro:SetBrush( oBrush )

   oBrush:End()

   oMetro:bRClicked := { |r,c,f,o| msginfo( 'HWND' + NUMTOHEX( oWnd:hWnd, 8 ) ) }

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON INIT( oWnd:nHeight := ScreenHeight(), oMetro:Show() )

RETURN NIL

STATIC FUNCTION MakeMetroPanel( oWnd ) // Professional Edition, yes sir!

   LOCAL cTitle, oMetro, oBtn, oBtnEmp, oBtnSet, oBtnPerm, oBtnExit, oBtnLin
   LOCAL oBtnRang, oBtnCli, oBtnArt, oBtnContr, oBtnStock, oBtnImp, oBtnMove
   LOCAL oBtnLocal

   cTitle := "SysCtrl PANEL - Via Touch Screen - Scroll Mouse Navigation - Version: 1.0"

   DEFINE METROPANEL oMetro OF oWnd TITLE cTitle COLOR CLR_YELLOW, CLR_WHITE ;
      ON CLICK( CIERRA_METROWIN( oWnd ) )

   oMetro:lDesignMode := .T.

   DEFINE METROBUTTON oBtnEmp OF oMetro             ;
      COLOR CLR_HBLUE, CLR_HGRAY                    ;
      CAPTION "FiveTech"                            ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\FiveTech.png" ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Datos; de la; Empresa"              ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Empresas() )

   oBtnEmp:nClrCaption := CLR_HCYAN
   oBtnEmp:cToolTip := "Datos de la Empresa FiveTech"

   // EM RESTO.PRG INICIO - modelo inicial

   DEFINE METROBUTTON oBtnSet OF oMetro             ;
      COLOR CLR_WHITE,RGB(  86, 177,  14 )          ;
      CAPTION "Setup"                               ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image6.png"   ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Configuración;de;SysCtrl POS"       ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Configurar() )

   oBtnSet:nClrCaption := CLR_BLACK

   DEFINE METROBUTTON oBtnPerm OF oMetro              ;
      COLOR RGB(  15,  15,  15 ),RGB( 213, 177,   1 ) ;
      CAPTION "Users"                                 ;
      ALIGN "TOPRIGHT"                                ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image7.png"     ;
      SIZE 100, 100                                   ;
      BMPALIGN "BOTTOMLEFT"                           ;
      BODYTEXT "Control;de acceso;a los Usuarios"     ;
      TEXTALIGN "BOTTOMRIGHT"                         ;
      LARGE                                           ;
      ACTION( Permisos() )

   oBtnPerm:nClrCaption := CLR_HBLUE
   oBtnPerm:cToolTip := "Control de acceso a los Usuarios"

   DEFINE METROBUTTON oBtnLin OF oMetro                ;
      COLOR RGB(  15,  15,  15 ),RGB( 219, 239, 107 )  ;
      CAPTION "Categories"                             ;
      ALIGN "TOPRIGHT"                                 ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Pan_Setting.png" ;
      BMPALIGN "BOTTOMLEFT"                            ;
      SIZE 100, 100                                    ;
      BODYTEXT "Cátalogo;Linea;Productos"              ;
      TEXTALIGN "BOTTOMRIGHT"                          ;
      LARGE                                            ;
      ACTION( Lineas() )

   oBtnLin:nClrCaption := RGB(255,0,255)
   oBtnLin:cToolTip := "Cátalogo Linea Productos"

   DEFINE METROBUTTON oBtnRang OF oMetro                 ;
      COLOR RGB( 255, 255, 128 ),RGB( 202,   7, 218 )    ;
      CAPTION "Re-Arrange"                               ;
      ALIGN "TOPCENTER"                                  ;
      BODYTEXT "By Just;Drag && Drop"                    ;
      TEXTALIGN "MIDDLECENTER"

   oBtnRang:nClrCaption := CLR_WHITE
   oBtnRang:cToolTip := "By Just Drag && Drop"

   DEFINE METROBUTTON oBtnCli OF oMetro             ;
      COLOR CLR_WHITE,RGB(   2, 174, 224 )          ;
      CAPTION  "Customers"                          ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image3.png"   ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Catálogo;de;Clientes"               ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Clientes() )

   oBtnCli:nClrCaption := CLR_MAGENTA //RGB(255,0,255)
   oBtnCli:cToolTip := "Catálogo de Clientes"

   DEFINE METROBUTTON oBtnArt OF oMetro             ;
      COLOR RGB(  15,15,15 ),RGB( 255, 255, 255 )   ;
      CAPTION "Artigos"                             ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image8.png"   ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "descripcion"                        ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Artics() )

   oBtnArt:nClrCaption := RGB( 255, 0, 255 )
   oBtnArt:cToolTip := "Descripcion de Artics"

   DEFINE METROBUTTON oBtnContr OF oMetro          ;
      COLOR RGB(  255,255,255 ),RGB( 220, 53, 69 ) ;
      CAPTION "Contratos"                          ;
      ALIGN "TOPRIGHT"                             ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image13.png" ;
      BMPALIGN "BOTTOMLEFT"                        ;
      SIZE 100, 100                                ;
      BODYTEXT "Cadastro; Contratos; Arrendamiento";
      TEXTALIGN "BOTTOMRIGHT"                      ;
      LARGE                                        ;
      ACTION( Contratos() )

   oBtnContr:nClrCaption := RGB(0,0,0)
   oBtnContr:cToolTip := "Cadastro de Contratos y Arrendamiento"

   DEFINE METROBUTTON oBtnStock OF oMetro         ;
      COLOR CLR_WHITE,RGB(   2,  70, 133 )        ;
      CAPTION "Stock"                             ;
      ALIGN "TOPRIGHT"                            ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image2.png" ;
      BMPALIGN "BOTTOMLEFT"                       ;
      SIZE 100, 100                               ;
      BODYTEXT "Control;de;Inventarios"           ;
      TEXTALIGN "BOTTOMRIGHT"                     ;
      LARGE

   oBtnStock:nClrCaption := RGB(255,255,255)
   oBtnStock:cToolTip := "Control de Inventarios"

   DEFINE METROBUTTON oBtnImp OF oMetro ;
      COLOR CLR_BLACK,CLR_WHITE         ;
      CAPTION "SysCtrl Reports"         ;
      ALIGN "TOPRIGHT"                  ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Printer.png" ;
      BMPALIGN "BOTTOMLEFT"                        ;
      SIZE 100, 100                                ;
      BODYTEXT "Centro;de;Impresión"               ;
      TEXTALIGN "BOTTOMRIGHT"                      ;
      LARGE                                        ;
      ACTION( msginfo("Reports") )

   oBtnImp:nClrCaption := CLR_HRED
   oBtnImp:cToolTip := "Centro;de;Impresión"

   DEFINE METROBUTTON oBtnLocal OF oMetro         ;
      COLOR CLR_WHITE, RGB(255, 255, 255)         ;
      CAPTION "Commerce" +CRLF+ "Locales"         ;
      ALIGN "TOPRIGHT"                            ;
      GROUP 2                                     ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image8.png" ;
      BMPALIGN "BOTTOMLEFT"                       ;
      SIZE 80, 80                                 ;
      ACTION( Locales() )

   oBtnLocal:nClrCaption := CLR_BLACK
   oBtnLocal:cToolTip := "Commerce Locales"

   // EM RESTO.PRG FIM

   DEFINE METROBUTTON oBtnMove OF oMetro    ;
      COLOR CLR_BLACK, CLR_HRED             ;
      CAPTION "Salida"                      ;
      ALIGN "TOPRIGHT"                      ;
      GROUP 2                               ;
      BITMAP "c:\fwh1905\bitmaps\TOUCH.BMP" ;
      BMPALIGN   "BOTTOMLEFT"               ;
      SIZE 80, 80                           ;
      ACTION( CIERRA_METROWIN( oWnd ) )

   oBtnMove:bOnMove := { |o,b| logfile( cFileSetExt( ExeName(), "log" ), { b:nTop, b:nLeft } ) }

   @ 40,10 BTNBMP oBtnExit FILE "c:\fwh1905\bitmaps\metro\END.bmp" ;
      SIZE 60, 60 PIXEL OF oMetro CENTER NOBORDER TRANSPARENT      ;
      ACTION( CIERRA_METROWIN( oWnd ) )

   oBtnExit:cToolTip := "Salida - Exit - Cancelar"

RETURN( oMetro )

STATIC FUNCTION MetroFiles( oWnd )

   LOCAL oMetro, n, oBtn
   LOCAL aDir     := Directory( "*.*" )

   DEFINE METROPANEL oMetro OF oWnd TITLE "Files" ;
      COLOR CLR_WHITE, nClrBack

   for n := 1 to Min( Len( aDir ), 20 )
      oMetro:AddButton( .t., nil, aDir[ n ][ 1 ],nil,nil,nil,"..\metro\files.bmp" )
   next

   oMetro:bRClicked := { || MsgInfo( "click" ), oMetro:SwitchTo( oMetro:oParent ) }

   @ 40,10 BTNBMP oBtn FILE "c:\fwh\bitmaps\metro\metro-back-48.png","","",;
                            "c:\fwh\bitmaps\metro\back-black-48.png" ;
      SIZE 60,60 PIXEL OF oMetro CENTER NOBORDER TRANSPARENT ;
      ACTION oMetro:SwitchTo( oMetro:oParent )

RETURN( oMetro )

STATIC FUNCTION ImageFiles( oWnd )

   LOCAL oMetro, aFiles, aFile, oBtn

   aFiles   := Directory( "..\bitmaps\AlphaBmp\*.bmp" )

   DEFINE METROPANEL oMetro OF oWnd TITLE "Bitmaps" ;
      COLOR CLR_WHITE, nClrBack

   for each aFile in aFiles
      DEFINE METROBUTTON OF oMetro ;
          CAPTION  aFile[ 1 ] ALIGN 'BOTTOMCENTER' ;
           BITMAP  "..\bitmaps\AlphaBmp\" + aFile[ 1 ] ;
         BMPALIGN  "
TOPCENTER"
   next

   oMetro:bLClicked := { || msginfo( "
click" ) }

   @ 40,10 BTNBMP oBtn FILE "
c:\fwh\bitmaps\metro\metro-back-48.png","","",;
                            "
c:\fwh\bitmaps\metro\back-black-48.png" ;
      SIZE 60,60 PIXEL OF oMetro CENTER NOBORDER TRANSPARENT ;
      ACTION oMetro:SwitchTo( oMetro:oParent )


RETURN( oMetro )

FUNCTION UserConnection()

   LOCAL cQry
   LOCAL oDlg
   LOCAL oGet[10]
   LOCAL oBtn[ 10 ]
   LOCAL oVar := array( 10 )
   LOCAL oBrush
   LOCAL oQry
   LOCAL lVal := .f.
   LOCAL oSay1
   LOCAL oFont
   LOCAL cClave1 := "
"
   LOCAL nCol := 75
   LOCAL nSt := 55
   LOCAL oImg
   LOCAL cFile := "
.\bmps\ScUser.jpg"

   oVar[ 1 ] := space(15)
   oVar[ 2 ] := space(40)
   oVar[ 3 ] := space(15)

   DEFINE BRUSH oBrush COLOR nRGB( 255, 255, 255 )

   DEFINE FONT oFont NAME "
TAHOMA" SIZE 0,-12 BOLD

   DEFINE DIALOG oDlg  SIZE 525, 250 brush oBrush FONT oFont
   oDlg:lTransparent := .t.
   oDlg:cTitle := "
SysCtrl Connection:"

   @ 0,1 XIMAGE oImg filename cFile  SIZE 70,70 NOBORDER OF oDlg

   @ 10, nCol SAY "
Clave Usuario :" OF oDlg pixel
   @ 10, nCol+nSt GET oGet[ 1] VAR oVar[ 1 ] of oDlg SIZE 60, 12 PICTURE "
@!k" PIXEL ;
      VALID ( ChkUser1( oVar, oGet, oSay1 ) )

   @ 25, nCol SAY "
Nombre :" OF oDlg pixel
   @ 25, nCol+nSt GET oGet[ 2] VAR oVar[ 2 ] of oDlg SIZE 120, 12 PICTURE "
@!k" PIXEL

   @ 40, nCol SAY  FWString("
Password:") OF oDlg pixel
   @ 40, nCol+nSt GET oGet[ 3] VAR oVar[ 3 ] of oDlg SIZE 60, 12 PICTURE "
@!k" ;
    PIXEL PASSWORD

   @ 85, 80 BTNBMP oBtn[1] PROMPT "
Connect"  SIZE 50, 30 OF oDlg ;
       ACTION ( lVal := .t. , oDlg:end() ) RESOURCE "
ACEPTAR" PIXEL TOP FLAT

   @ 85, 145 BTNBMP oBtn[2] PROMPT "
Cancel" SIZE 50, 30 OF oDlg ;
       ACTION ( lVal := .f. , oDlg:end() ) CANCEL RESOURCE "
CANCELAR" PIXEL TOP FLAT

   oDlg:lHelpIcon := .f.

   ACTIVATE DIALOG oDlg CENTERED ON INIT oGet[1]:SetFocus()

   IF lVal

      lVal := .f.
      oQry := hMain["
server"]:Query( "SELECT * FROM users WHERE user=" + C_SIMPLE + alltrim( oVar[ 1 ] ) + C_SIMPLE )
      cClave1 :=  decrypt( oQry:FieldGet('pasw1')   )
      nRows := oQry:RecCount()

      IF nRows=0
         lVal := .f.
      ENDIF

      /*
      if cstr2(cClave1) == cstr2(oVar[3])
         lVal := .t.
      endif
      */

      oQry:end()

   ENDIF

RETURN ( lVal )

FUNCTION ChkUser1( oVar, oGet, oSay1 )

   LOCAL nRows, oQry

   IF Empty( oVar[ 1 ] )
      RETURN .t.
   ENDIF

   oQry := hMain["
server"]:Query( "SELECT * FROM users WHERE user=" + C_SIMPLE + alltrim( oVar[ 1 ] ) + C_SIMPLE )

   nRows := oQry:RecCount()

   IF nRows > 0  //ya existe

      oVar[2] := oQry:FieldGet('username')
      hMain["
user"] := oVar[1]
      hMain["
username"] := oVar[2]
      hMain["
admin"] := oQry:FieldGet('admin')

      oGet[2]:disable()
      oGet[2]:Refresh()

   ENDIF

   oQry:END()
   oQry := NIL

RETURN( .T. )

FUNCTION CATALOGOUSUARIOS()

RETURN (.T.)

STATIC FUNCTION ExitTo( cExe )

   IF File( cExe )

      WinExec( cExe )

      WndMain():End()

   ELSE

      MsgInfo( cExe + "
not found" )

   ENDIF

RETURN NIL

INIT PROCEDURE ScSets()

   HB_GCALL( .F. )

   /*
   // Para establecer código de página a Español (Ordenación, etc..)
   REQUEST HB_CODEPAGE_ESWIN
   REQUEST HB_LANG_ES

   HB_LANGSELECT( 'ES' )
   */

   HB_LANGSELECT( 'PT' )     // Default language is now Portuguese
   HB_SETCODEPAGE( "
PT850" )

   RDDSETDEFAULT("
DBFCDX")

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "
HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF

   SetBalloon( .T. ) // Balloon shape required for tooltips

   oSkinB = TSkinButton():New()
   oSkinB:nClrBorder0_N := RGB( 249, 194, 179 )
   oSkinB:nClrBorder1_N := RGB( 181, 61, 29 )
   // ESTA EM: TESTSK1.PRG - VIDE: COLORS.CH - aPubGrad
   // Verde Oliva... Fica good RGB(109, 135, 100) // Bordas Vermelhas.
   oSkinB:aClrNormal    := { { 0.2, RGB( 000, 128, 000 ), RGB( 000, 128, 000 ) }, ;
                             { 0.8, RGB( 109, 135, 100 ), RGB( 109, 135, 100 ) } }

   SkinButtons( oSkinB ) // MUDEI EM: 24/08/2021 - COR: VERDE OLIVA.

   FW_SetUnicode( .T. )
   SetGetColorFocus( CLR_LGREEN )

   tGet():lDisColors  := .F.
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_SOFTYELLOW

   /*
   IF .NOT. File( "
my_reports" )

      lMkDir( "
my_reports" )

   ENDIF
   */

RETURN NIL

FUNCTION CIERRA_METROWIN( oWnd )

   // ? [ Salida aqui - Gracias Cesar.]

   IF FILE( "
ENCERRA.wav" )

      SndPlaySound( "
ENCERRA.wav", 0 )

   ENDIF

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()

   FreeResources()

   Release All

   SysRefresh()

   HB_GCALL( .T. )

   CLEAR MEMORY

   PostQuitMessage( 0 )

   QUIT

RETURN NIL

FUNCTION Empresas()

   ? [AQUI, EMPRESA...]

RETURN NIL

FUNCTION Configurar()

   ? [AQUI, CONFIGURAR...]

RETURN NIL

FUNCTION Permisos()

   ? [AQUI, PERMISOS...]

RETURN NIL

FUNCTION Lineas()

   ? [AQUI, LINEAS...]

RETURN NIL

FUNCTION Clientes()

   ? [AQUI, CLIENTES...]

RETURN NIL

FUNCTION Artics()

   ? [AQUI, ARTIGOS...]

RETURN NIL

FUNCTION Contratos()

   ? [AQUI, CONTRATOS...]

RETURN NIL

FUNCTION Locales()

   ? [AQUI, LOCALES...]

RETURN NIL

// FIN / END - kapiabafwh@gmail.com


Regards, saludos

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 8:13 pm
by sysctrl2
muy bueno amigo
gracias

Re: SysCtrl PANEL BLACK

Posted: Fri Sep 10, 2021 10:52 pm
by karinha
Ahora simulando Desktop y usando FONT oFont

Code: Select all | Expand


// C:\TMETRO - BY Cesar SysCtrl Software 2021 - Muchas Gracias.
// METROWIN.PRG - Version 2.0 by Joao Santos - kapiabafw@gmail.com - 10/09/2021
// Comenzar a aprender en la PANTALLA TACTIL: Me Encanta Fivewin.

/* // Original:
* SysCtrl Terminal Punto de Venta
* 01-Jun-2021
* BY Cesar SysCtrl Software 2021
* en este proyecto ya no usamos connect.ini
* la connexion la controlamos desde codigo
* Special thanks To: Cesar SysCtrl Software 2021
* Modificado em: 10/09/2021 - by Joao Santos - Covid 19 - Quarentine.
*/


#Include "Ambienty.ch"
#Include "xBrowse.ch"
#Include "Metropnl.ch"
// #Include ".\includes\scs.CH"

STATIC oWnd, oFontLarge, oFontMed, oFontUL, oFontSmall
STATIC oMetro, oTools, oWait
STATIC nClrBack := CLR_GREEN

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

ANNOUNCE RDDSYS
REQUEST OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto
REQUEST DBFCDX, DBFFPT

FUNCTION Main()

   // LOCAL oWnd, oBar, oMetro, oBrush, cTitle, oServer, oQru, nRows
   LOCAL oBar, oMetro, oBrush, cTitle, oServer, oQru, nRows

   cTitle := "PLENOIND For Windows - Skype: joao@pleno.com.br"

   DEFINE FONT oFontLarge NAME "Segoe UI Light" SIZE 0, -60 BOLD
   DEFINE FONT oFontMed   NAME "Segoe UI Light" SIZE 0, -40 BOLD
   DEFINE FONT oFontUL    NAME "Segoe UI Light" SIZE 0, -30 UNDERLINE
   DEFINE FONT oFontSmall NAME "Segoe UI Light" SIZE 0, -20 BOLD

   /* WINDOW FULL - JANELA CHEIA PARA DESKTOP NAO E BOM.
   DEFINE WINDOW oWnd TITLE cTitle STYLE nOr( WS_POPUP, WS_MAXIMIZE )        ;
      COLOR CLR_WHITE, CLR_GREEN ICON ".\TIMAO.ico"
   */

   DEFINE WINDOW oWnd TITLE cTitle         ;
      COLOR CLR_WHITE, CLR_GREEN ICON ".\TIMAO.ico"

   oWnd:Maximize()

   oMetro := MakeMetroPanel( oWnd ) // MENU

   DEFINE BRUSH oBrush FILE '.\BACKUP.jpg' RESIZE UPDATE

   oMetro:SetBrush( oBrush )

   oBrush:End()

   oMetro:bRClicked := { |r,c,f,o| msginfo( 'HWND' + NUMTOHEX( oWnd:hWnd, 8 ) ) }

   /*
   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON INIT( oWnd:nHeight := ScreenHeight(), oMetro:Show() )
   */


   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( oMetro:Show() ) ;
      VALID( CIERRA_METROWIN( oWnd ) )

RETURN NIL
// menu do sistema touch
STATIC FUNCTION MakeMetroPanel( oWnd ) // Professional Edition, yes sir!

   LOCAL cTitle, oMetro, oBtn, oBtnEmp, oBtnSet, oBtnPerm, oBtnExit, oBtnLin
   LOCAL oBtnRang, oBtnCli, oBtnArt, oBtnContr, oBtnStock, oBtnImp, oBtnMove
   LOCAL oBtnLocal

   cTitle := "SysCtrl PANEL - Via Touch Screen"

   DEFINE METROPANEL oMetro OF oWnd TITLE cTitle COLOR CLR_HGREEN, CLR_WHITE ;
      ON CLICK( CIERRA_METROWIN( oWnd ) )

   oMetro:lDesignMode := .T.

   oMetro:oFont:End()
   oMetro:oFont       := oFontLarge   // Title

   DEFINE METROBUTTON oBtnEmp OF oMetro             ;
      COLOR CLR_HBLUE, CLR_HGRAY                    ;
      FONT oFontSmall                               ;
      CAPTION "FiveTech"                            ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\FiveTech.png" ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Datos; de la; Empresa"              ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Empresas() )

   oBtnEmp:nClrCaption := CLR_HCYAN
   oBtnEmp:cToolTip := "Datos de la Empresa FiveTech"

   // EM RESTO.PRG INICIO - modelo inicial

   DEFINE METROBUTTON oBtnSet OF oMetro             ;
      COLOR CLR_WHITE,RGB(  86, 177,  14 )          ;
      FONT oFontSmall                               ;
      CAPTION "Setup"                               ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image6.png"   ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Configuración;de;SysCtrl POS"       ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Configurar() )

   oBtnSet:nClrCaption := CLR_BLACK

   DEFINE METROBUTTON oBtnPerm OF oMetro              ;
      COLOR RGB(  15,  15,  15 ),RGB( 213, 177,   1 ) ;
      FONT oFontSmall                               ;
      CAPTION "Users"                                 ;
      ALIGN "TOPRIGHT"                                ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image7.png"     ;
      SIZE 100, 100                                   ;
      BMPALIGN "BOTTOMLEFT"                           ;
      BODYTEXT "Control;de acceso;a los Usuarios"     ;
      TEXTALIGN "BOTTOMRIGHT"                         ;
      LARGE                                           ;
      ACTION( Permisos() )

   oBtnPerm:nClrCaption := CLR_HBLUE
   oBtnPerm:cToolTip := "Control de acceso a los Usuarios"

   DEFINE METROBUTTON oBtnLin OF oMetro                ;
      COLOR RGB(  15,  15,  15 ),RGB( 219, 239, 107 )  ;
      FONT oFontSmall                                  ;
      CAPTION "Categories"                             ;
      ALIGN "TOPRIGHT"                                 ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Pan_Setting.png" ;
      BMPALIGN "BOTTOMLEFT"                            ;
      SIZE 100, 100                                    ;
      BODYTEXT "Cátalogo;Linea;Productos"              ;
      TEXTALIGN "BOTTOMRIGHT"                          ;
      LARGE                                            ;
      ACTION( Lineas() )

   oBtnLin:nClrCaption := RGB(255,0,255)
   oBtnLin:cToolTip := "Cátalogo Linea Productos"

   DEFINE METROBUTTON oBtnRang OF oMetro               ;
      COLOR RGB( 255, 255, 128 ),RGB( 202,   7, 218 )  ;
      FONT oFontSmall                                  ;
      CAPTION "Re-Arrange"                             ;
      ALIGN "TOPCENTER"                                ;
      BODYTEXT "By Just;Drag && Drop"                  ;
      TEXTALIGN "MIDDLECENTER"

   oBtnRang:nClrCaption := CLR_WHITE
   oBtnRang:cToolTip := "By Just Drag && Drop"

   DEFINE METROBUTTON oBtnCli OF oMetro             ;
      COLOR CLR_WHITE,RGB(   2, 174, 224 )          ;
      FONT oFontSmall                               ;
      CAPTION  "Customers"                          ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image3.png"   ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Catálogo;de;Clientes"               ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Clientes() )

   oBtnCli:nClrCaption := CLR_MAGENTA //RGB(255,0,255)
   oBtnCli:cToolTip := "Catálogo de Clientes"

   DEFINE METROBUTTON oBtnArt OF oMetro             ;
      COLOR RGB(  15,15,15 ),RGB( 255, 255, 255 )   ;
      FONT oFontSmall                               ;
      CAPTION "Artigos"                             ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image8.png"   ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "descripcion"                        ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Artics() )

   oBtnArt:nClrCaption := RGB( 255, 0, 255 )
   oBtnArt:cToolTip := "Descripcion de Artics"

   DEFINE METROBUTTON oBtnContr OF oMetro           ;
      COLOR RGB(  255,255,255 ),RGB( 220, 53, 69 )  ;
      FONT oFontSmall                               ;
      CAPTION "Contratos"                           ;
      ALIGN "TOPRIGHT"                              ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image13.png"  ;
      BMPALIGN "BOTTOMLEFT"                         ;
      SIZE 100, 100                                 ;
      BODYTEXT "Cadastro; Contratos; Arrendamiento" ;
      TEXTALIGN "BOTTOMRIGHT"                       ;
      LARGE                                         ;
      ACTION( Contratos() )

   oBtnContr:nClrCaption := RGB(0,0,0)
   oBtnContr:cToolTip := "Cadastro de Contratos y Arrendamiento"

   DEFINE METROBUTTON oBtnStock OF oMetro         ;
      COLOR CLR_WHITE,RGB(   2,  70, 133 )        ;
      FONT oFontSmall                             ;
      CAPTION "Stock"                             ;
      ALIGN "TOPRIGHT"                            ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image2.png" ;
      BMPALIGN "BOTTOMLEFT"                       ;
      SIZE 100, 100                               ;
      BODYTEXT "Control;de;Inventarios"           ;
      TEXTALIGN "BOTTOMRIGHT"                     ;
      LARGE

   oBtnStock:nClrCaption := RGB(255,255,255)
   oBtnStock:cToolTip := "Control de Inventarios"

   DEFINE METROBUTTON oBtnImp OF oMetro            ;
      COLOR CLR_BLACK,CLR_WHITE                    ;
      FONT oFontSmall                              ;
      CAPTION "SysCtrl Reports"                    ;
      ALIGN "TOPRIGHT"                             ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Printer.png" ;
      BMPALIGN "BOTTOMLEFT"                        ;
      SIZE 100, 100                                ;
      BODYTEXT "Centro;de;Impresión"               ;
      TEXTALIGN "BOTTOMRIGHT"                      ;
      LARGE                                        ;
      ACTION( msginfo("Reports") )

   oBtnImp:nClrCaption := CLR_HRED
   oBtnImp:cToolTip := "Centro;de;Impresión"

   DEFINE METROBUTTON oBtnLocal OF oMetro          ;
      COLOR CLR_WHITE, RGB(255, 255, 255)          ;
      FONT oFontSmall                              ;
      CAPTION "Commerce" +CRLF+ "Locales"          ;
      ALIGN "TOPRIGHT"                             ;
      GROUP 2                                      ;
      BITMAP "c:\fwh1905\bitmaps\PNGS\Image8.png"  ;
      BMPALIGN "BOTTOMLEFT"                        ;
      SIZE 80, 80                                  ;
      ACTION( Locales() )

   oBtnLocal:nClrCaption := CLR_BLACK
   oBtnLocal:cToolTip := "Commerce Locales"

   // EM RESTO.PRG FIM

   DEFINE METROBUTTON oBtnMove OF oMetro           ;
      COLOR   CLR_WHITE,RGB(  86, 177,  14 )       ;
      FONT oFontSmall                              ;
      CAPTION "Salida"                             ;
      ALIGN "TOPRIGHT"                             ;
      GROUP 2                                      ;
      BITMAP "c:\fwh1905\bitmaps\TOUCH.BMP"        ;
      BMPALIGN   "BOTTOMLEFT"                      ;
      SIZE 80, 80                                  ;
      ACTION( CIERRA_METROWIN( oWnd ) )

   oBtnMove:bOnMove := { |o,b| logfile( cFileSetExt( ExeName(), "log" ), { b:nTop, b:nLeft } ) }

   @ 40,10 BTNBMP oBtnExit FILE "c:\fwh1905\bitmaps\metro\END.bmp" ;
      SIZE 60, 60 PIXEL OF oMetro CENTER NOBORDER TRANSPARENT      ;
      ACTION( CIERRA_METROWIN( oWnd ) )

   oBtnExit:cToolTip := "Salida - Exit - Cancelar"

RETURN( oMetro )

STATIC FUNCTION MetroFiles( oWnd )

   LOCAL oMetro, n, oBtn
   LOCAL aDir     := Directory( "*.*" )

   DEFINE METROPANEL oMetro OF oWnd TITLE "Files" ;
      COLOR CLR_WHITE, nClrBack

   for n := 1 to Min( Len( aDir ), 20 )
      oMetro:AddButton( .t., nil, aDir[ n ][ 1 ],nil,nil,nil,"..\metro\files.bmp" )
   next

   oMetro:bRClicked := { || MsgInfo( "click" ), oMetro:SwitchTo( oMetro:oParent ) }

   @ 40,10 BTNBMP oBtn FILE "c:\fwh\bitmaps\metro\metro-back-48.png","","",;
                            "c:\fwh\bitmaps\metro\back-black-48.png" ;
      SIZE 60,60 PIXEL OF oMetro CENTER NOBORDER TRANSPARENT ;
      ACTION oMetro:SwitchTo( oMetro:oParent )

RETURN( oMetro )

STATIC FUNCTION ImageFiles( oWnd )

   LOCAL oMetro, aFiles, aFile, oBtn

   aFiles   := Directory( "..\bitmaps\AlphaBmp\*.bmp" )

   DEFINE METROPANEL oMetro OF oWnd TITLE "Bitmaps" ;
      COLOR CLR_WHITE, nClrBack

   for each aFile in aFiles
      DEFINE METROBUTTON OF oMetro ;
          CAPTION  aFile[ 1 ] ALIGN 'BOTTOMCENTER' ;
           BITMAP  "..\bitmaps\AlphaBmp\" + aFile[ 1 ] ;
         BMPALIGN  "
TOPCENTER"
   next

   oMetro:bLClicked := { || msginfo( "
click" ) }

   @ 40,10 BTNBMP oBtn FILE "
c:\fwh\bitmaps\metro\metro-back-48.png","","",;
                            "
c:\fwh\bitmaps\metro\back-black-48.png" ;
      SIZE 60,60 PIXEL OF oMetro CENTER NOBORDER TRANSPARENT ;
      ACTION oMetro:SwitchTo( oMetro:oParent )


RETURN( oMetro )

FUNCTION UserConnection()

   LOCAL cQry
   LOCAL oDlg
   LOCAL oGet[10]
   LOCAL oBtn[ 10 ]
   LOCAL oVar := array( 10 )
   LOCAL oBrush
   LOCAL oQry
   LOCAL lVal := .f.
   LOCAL oSay1
   LOCAL oFont
   LOCAL cClave1 := "
"
   LOCAL nCol := 75
   LOCAL nSt := 55
   LOCAL oImg
   LOCAL cFile := "
.\bmps\ScUser.jpg"

   oVar[ 1 ] := space(15)
   oVar[ 2 ] := space(40)
   oVar[ 3 ] := space(15)

   DEFINE BRUSH oBrush COLOR nRGB( 255, 255, 255 )

   DEFINE FONT oFont NAME "
TAHOMA" SIZE 0,-12 BOLD

   DEFINE DIALOG oDlg  SIZE 525, 250 brush oBrush FONT oFont
   oDlg:lTransparent := .t.
   oDlg:cTitle := "
SysCtrl Connection:"

   @ 0,1 XIMAGE oImg filename cFile  SIZE 70,70 NOBORDER OF oDlg

   @ 10, nCol SAY "
Clave Usuario :" OF oDlg pixel
   @ 10, nCol+nSt GET oGet[ 1] VAR oVar[ 1 ] of oDlg SIZE 60, 12 PICTURE "
@!k" PIXEL ;
      VALID ( ChkUser1( oVar, oGet, oSay1 ) )

   @ 25, nCol SAY "
Nombre :" OF oDlg pixel
   @ 25, nCol+nSt GET oGet[ 2] VAR oVar[ 2 ] of oDlg SIZE 120, 12 PICTURE "
@!k" PIXEL

   @ 40, nCol SAY  FWString("
Password:") OF oDlg pixel
   @ 40, nCol+nSt GET oGet[ 3] VAR oVar[ 3 ] of oDlg SIZE 60, 12 PICTURE "
@!k" ;
    PIXEL PASSWORD

   @ 85, 80 BTNBMP oBtn[1] PROMPT "
Connect"  SIZE 50, 30 OF oDlg ;
       ACTION ( lVal := .t. , oDlg:end() ) RESOURCE "
ACEPTAR" PIXEL TOP FLAT

   @ 85, 145 BTNBMP oBtn[2] PROMPT "
Cancel" SIZE 50, 30 OF oDlg ;
       ACTION ( lVal := .f. , oDlg:end() ) CANCEL RESOURCE "
CANCELAR" PIXEL TOP FLAT

   oDlg:lHelpIcon := .f.

   ACTIVATE DIALOG oDlg CENTERED ON INIT oGet[1]:SetFocus()

   IF lVal

      lVal := .f.
      oQry := hMain["
server"]:Query( "SELECT * FROM users WHERE user=" + C_SIMPLE + alltrim( oVar[ 1 ] ) + C_SIMPLE )
      cClave1 :=  decrypt( oQry:FieldGet('pasw1')   )
      nRows := oQry:RecCount()

      IF nRows=0
         lVal := .f.
      ENDIF

      /*
      if cstr2(cClave1) == cstr2(oVar[3])
         lVal := .t.
      endif
      */

      oQry:end()

   ENDIF

RETURN ( lVal )

FUNCTION ChkUser1( oVar, oGet, oSay1 )

   LOCAL nRows, oQry

   IF Empty( oVar[ 1 ] )
      RETURN .t.
   ENDIF

   oQry := hMain["
server"]:Query( "SELECT * FROM users WHERE user=" + C_SIMPLE + alltrim( oVar[ 1 ] ) + C_SIMPLE )

   nRows := oQry:RecCount()

   IF nRows > 0  //ya existe

      oVar[2] := oQry:FieldGet('username')
      hMain["
user"] := oVar[1]
      hMain["
username"] := oVar[2]
      hMain["
admin"] := oQry:FieldGet('admin')

      oGet[2]:disable()
      oGet[2]:Refresh()

   ENDIF

   oQry:END()
   oQry := NIL

RETURN( .T. )

FUNCTION CATALOGOUSUARIOS()

RETURN (.T.)

STATIC FUNCTION ExitTo( cExe )

   IF File( cExe )

      WinExec( cExe )

      WndMain():End()

   ELSE

      MsgInfo( cExe + "
not found" )

   ENDIF

RETURN NIL

INIT PROCEDURE ScSets()

   HB_GCALL( .F. )

   /*
   // Para establecer código de página a Español (Ordenación, etc..)
   REQUEST HB_CODEPAGE_ESWIN
   REQUEST HB_LANG_ES

   HB_LANGSELECT( 'ES' )
   */

   HB_LANGSELECT( 'PT' )     // Default language is now Portuguese
   HB_SETCODEPAGE( "
PT850" )

   RDDSETDEFAULT("
DBFCDX")

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "
HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF

   SetBalloon( .T. ) // Balloon shape required for tooltips

   oSkinB = TSkinButton():New()
   oSkinB:nClrBorder0_N := RGB( 249, 194, 179 )
   oSkinB:nClrBorder1_N := RGB( 181, 61, 29 )
   // ESTA EM: TESTSK1.PRG - VIDE: COLORS.CH - aPubGrad
   // Verde Oliva... Fica good RGB(109, 135, 100) // Bordas Vermelhas.
   oSkinB:aClrNormal    := { { 0.2, RGB( 000, 128, 000 ), RGB( 000, 128, 000 ) }, ;
                             { 0.8, RGB( 109, 135, 100 ), RGB( 109, 135, 100 ) } }

   SkinButtons( oSkinB ) // MUDEI EM: 24/08/2021 - COR: VERDE OLIVA.

   FW_SetUnicode( .T. )
   SetGetColorFocus( CLR_LGREEN )

   tGet():lDisColors  := .F.
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_SOFTYELLOW

   /*
   IF .NOT. File( "
my_reports" )

      lMkDir( "
my_reports" )

   ENDIF
   */

RETURN NIL

FUNCTION CIERRA_METROWIN( oWnd )

   // ? [ Salida aqui - Gracias Cesar.]

   IF FILE( "
ENCERRA.wav" )

      SndPlaySound( "
ENCERRA.wav", 0 )

   ENDIF

   RELEASE FONT oFontLarge, oFontMed, oFontUL, oFontSmall

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()

   FreeResources()

   Release All

   SysRefresh()

   HB_GCALL( .T. )

   CLEAR MEMORY

   PostQuitMessage( 0 )

   QUIT

RETURN NIL

FUNCTION Empresas()

   ? [AQUI, EMPRESA...]

RETURN NIL

FUNCTION Configurar()

   ? [AQUI, CONFIGURAR...]

RETURN NIL

FUNCTION Permisos()

   ? [AQUI, PERMISOS...]

RETURN NIL

FUNCTION Lineas()

   ? [AQUI, LINEAS...]

RETURN NIL

FUNCTION Clientes()

   ? [AQUI, CLIENTES...]

RETURN NIL

FUNCTION Artics()

   ? [AQUI, ARTIGOS...]

RETURN NIL

FUNCTION Contratos()

   ? [AQUI, CONTRATOS...]

RETURN NIL

FUNCTION Locales()

   ? [AQUI, LOCALES...]

RETURN NIL

// FIN / END - kapiabafwh@gmail.com


Regards, saludos.

Re: SysCtrl PANEL BLACK

Posted: Sat Sep 11, 2021 5:55 am
by Antonio Linares
João,

Muy bueno!

Hay un "flickering" de la imagen posterior al usar el scroll del ratón. Tal vez sea un bug de FWH

Re: SysCtrl PANEL BLACK

Posted: Sat Sep 11, 2021 1:36 pm
by karinha
flickering, aflutter = Tremulante.

oscilante := swinging, wavering, flickering, oscillatory, floating, wobbly

Exacto Master.

No és nada que el equipo de FiveTech no pueda resolver.

Muchas gracias. Fuerte abrazo.


Regards, saludos.

Re: SysCtrl PANEL BLACK

Posted: Sat Sep 11, 2021 1:38 pm
by karinha
Esto también no me restorna una window perfecta. No se completa en el vídeo(monitor).

Code: Select all | Expand


ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON INIT( oWnd:nHeight := ScreenHeight(), oMetro:Show() )
 


Regards, saludos.

Re: SysCtrl PANEL BLACK

Posted: Sat Sep 11, 2021 2:56 pm
by sysctrl2
tMetro de las mejores clases de FWH
le da un PLUS a las aplicaciones de escritorio
una vista profesional !

Image

Re: SysCtrl PANEL BLACK

Posted: Sat Sep 11, 2021 3:13 pm
by karinha
Duda:

No se puede usar MDI?

Code: Select all | Expand


DEFINE WINDOW oWnd TITLE cTitle MDI
 


Traba y no muestra el DIALOGO.

???

Regardas, saludos.

Re: SysCtrl PANEL BLACK

Posted: Sat Sep 11, 2021 3:30 pm
by sysctrl2
João
MDI NO FUNCIONA