Metro Class on notebooks

Re: Metro Class on notebooks

Postby cnavarro » Sun Aug 02, 2015 8:18 am

FWH which version are you using?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Postby LordJonas » Sun Aug 02, 2015 1:23 pm

Cristobal,

FWH 14.12, Harbour 3.2, BCC 5.8.2,
LordJonas
 
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Postby LordJonas » Mon Aug 03, 2015 6:03 pm

After some digging and following Cristobal suggestion to use his components i came with a small testbed program:

freguesia.prg
Code: Select all  Expand view

/* ************************************************************************** *
 * Project        :  FREGUESIA                                                *
 * Module         :  freguesia.prg                                            *
 * Author         :  Joao Ferreira                                            *
 * Date Written   :  2015.Ago.04                                              *
 * Date Compiled  :                                                           *
 * ************************************************************************** */

 
 #include "fivewin.ch"
 #include "colores.ch"
 
 /* ************************************************************************* */
 
 static oWndUI
 static nRefresh := 0
 
 /* ************************************************************************* */
 function main()
 
   local lMax   := .T.
   local lMdi   := .F.
   local nCor   := METRO_AZUL3
   local cTit   := "Junta de Freguesia"
   local cUser  := WNetGetUser()
   local aBtn   := { { ".\res\junta.png",    ".\res\people.png" },     ;
                     { ".\res\docs.png",     ".\res\cemiterio.png" },  ;
                     { ".\res\canideos.png", ".\res\felinos.png" },    ;
                     { ".\res\ctt.png",      ".\res\stock.png" } }
                     
   SET EPOCH TO            1990
   SET CENTURY               ON
   SET DELETED               ON
   SET DATE FORMAT "DD/MM/YYYY"
   SET DECIMALS TO            2
   
   XBrNumFormat("E", .T.)
   
   SetResDebug(.T.)
   
   oWndUI := TWindowsUI():PnelPPal(.T., lMax, lMdi, nCor, cTit, cUser, aBtn)
   oWndUI:ActivaUI()
   
   Hb_GCall()
   
   CLEAR MEMORY
   
   CheckRes()
   
 return nil
 
 /* ************************************************************************* */
   


However, i came always ending with the same three error messages:
"c:\dev\testui\source\uiwindow.prg(3098) Error E0030 Syntax error "sytanx error at 'FUNCTION'"

"c:\dev\testui\source\uiwindow.prg(3491) Error E0030 Syntax error "sytanx error at 'FUNCTION'"

"c:\dev\testui\source\uiwindow.prg(3495) Error E0030 Syntax error "sytanx error at 'FUNCTION'"


the offending lines are those:

Code: Select all  Expand view

DLL FUNCTION keybd_event( bVk as _INT, ;
                          bScan as _INT, ;
                          dwFlags as LONG, ;
                          dwExtraInfo as LONG ) AS VOID PASCAL ;
                          FROM "keybd_event" LIB "user32.dll" <<---- line 3098
 


Code: Select all  Expand view

DLL32 function setwindowlong( hwnd as LONG, index as LONG, newlog as LONG ) ;
      AS LONG PASCAL FROM "SetWindowLongA" lib "user32.dll" <<--- line 3491
 


Code: Select all  Expand view

DLL32 function getwindowlong( hwnd as LONG, index as LONG ) AS LONG PASCAL ;
                              FROM "GetWindowLongA" lib "user32.dll" <<---- line 3495
 


I'm using this small adaptation from Cristobal to compile and linking the project:

makefreg.bat
Code: Select all  Expand view

set path=%path%;c:\dev\bcc582\bin\;
C:\dev\hb32\BIN\HBMK2.EXE -prgflag=/n /m /w /es1 /gc1 -cflag=/c /O2  -inc  -comp=bcc  -workdir=c:\prj\freguesia\obj  -iC:\dev\fwh\include -ic:\dev\testui\include -iC:\prj\freguesia\include -ic:\dev\testui\source -ic:\prj\freguesia\source c:\prj\freguesia\source\freguesia.prg c:\dev\testui\source\uiwindow.prg c:\dev\testui\source\uidialog.prg c:\dev\testui\source\xcbrowse.prg c:\dev\testui\source\tribbonc.prg c:\dev\testui\source\barc.prg c:\dev\testui\source\cmru.prg -Lc:\dev\fwh\lib  -Lc:\dev\bcc582\lib -Lc:\dev\bcc582\lib\psdk -lfiveh -lfivehc  -lpng -lhbct -lxhb -lgtgui -lhbwin  -lcw32 -luuid -limport32 -lws2_32 -lodbc32 -lnddeapi -liphlpapi -lmsimg32 -lpsapi -lrasapi32 -lgdiplus -lshell32
 


I can compile the offending code with Cristobal examples... WndUIxx, but not with mine.

Any ideas about the cause and possible solution??
LordJonas
 
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Postby cnavarro » Mon Aug 03, 2015 6:35 pm

Download

Enlace con los ejemplos
https://www.dropbox.com/s/yvk3mv8g0ex89 ... 0.zip?dl=0

Carpeta con recursos e iconos
Creo que estan todos
https://www.dropbox.com/s/cwqzgpotajd3sis/Res.zip?dl=0

Enlace con el fichero .Bat para construir los ejemplos
Link to the file. Bat to construct examples
https://www.dropbox.com/s/cv6cbojeldilw ... i.bat?dl=0

Tienes que modificar los path de Fivewin y de Harbour
Forma de usarlo
You have to change the path of Fivewin and Harbour
Method of use


C:\FiveUI>makeui wndui01 (para crear el ejemplo wndui01, y asi sucesivamente)
(to create the example wndui01, and so on)

Voy a adjuntar tambien los Objs construidos
I'll also attach the built Objs
https://www.dropbox.com/s/emczcr2tfux1y0a/obj.zip?dl=0

Y las clases
https://www.dropbox.com/s/f6sbbyypztisr ... e.zip?dl=0

Ojo, el fichero .ZIP de ejemplos WNDUI00.ZIP que publiqué antes ha de colocarse en la carpeta SOURCE
Eye, the ZIP file. WNDUI00.ZIP examples I posted before has placed in the SOURCE folder

Instrucciones:
- Crear una carpeta en el subidrectorio raiz C:\FiveUI
(Si deseas crearla en otra carpeta tendrás que modificar el fichero .BAT que adjunto
- La estructura de la carpeta ha de ser
C:\FiveUI
-- Include
-- Obj
-- Res
-- Source

y colocar las carpetas comprimidas que he publicado en sus respectivas ubicaciones

instructions:
- Create a folder on the root subidrectorio C: \ FiveUI
(If you want to create another folder you will have to modify the file. Attached BAT
- The folder structure must be
C: \ FiveUI
- Include
- Obj
- Res
- Source

and place the compressed folders that I posted at their respective locations
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Postby cnavarro » Mon Aug 03, 2015 6:37 pm

My mail

navarro . cristobal at gmail . com ( non spaces )

My english is very poor
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Postby LordJonas » Mon Aug 03, 2015 6:46 pm

Gracias Cristobal...

Si es más fácil para usted puede escribir en español ya que entiendo perfectamente ya que soy portugués ...

:mrgreen:
LordJonas
 
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Postby cnavarro » Wed Aug 05, 2015 8:21 pm

Has conseguido generar los ejemplos?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Postby LordJonas » Thu Aug 06, 2015 10:08 am

Buenas Cristobal

Sí , después de descargar la versión correcta de Harbour para el bcc582 puerto podría compilar y ejecutar todos los ejemplos ... Ahora que estoy haciendo pruebas con ellos para ver cómo funcionan sus clases y funciones con el fin de adaptarlos a mis necesidades .
LordJonas
 
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Postby LordJonas » Thu Aug 06, 2015 4:14 pm

Buenas Cristobal,

Estoy encontrando estos errores en la aplicación: la primera no puede él mostrar todos los encabezados de columna , pero sólo el primero que en el segundo después de un par de clics con el botón derecho del ratón me da este error.

Estoy incluyendo el código fuente del programa a continuación ...


Erro 1:
Image

Erro 2:
Image

Code: Select all  Expand view

/* ************************************************************************** *
 * Project        :  FREGUESIA                                                *
 * Module         :  freguesia.prg                                            *
 * Author         :  Joao Ferreira                                            *
 * Date Written   :  2015.Ago.04                                              *
 * Date Compiled  :                                                           *
 * ************************************************************************** */

 
 #include "fivewin.ch"
 #include "colores.ch"
 
 /* ************************************************************************* */
 
 static oWndUI
 static nRefresh := 0
 
 /* ************************************************************************* */
 function main()
 
   local lMax   := .T.
   local lMdi   := .F.
   local nCor   := METRO_AZUL3
   local cTit   := "Junta de Freguesia"
   local cUser  := WNetGetUser()
   
   local bAct
   
   local aBtt   := { { ".\res\guest.bmp",   ".\res\guest.bmp" }, ;
                     { ".\res\OnOff.bmp",   ".\res\OnOff.bmp" }, ;
                     { ".\res\busca.bmp",   ".\res\busca.bmp" } }
   
   local aBmp01 := { ;
                       ".\res\junta.bmp",  ;
                       ".\res\people.bmp", ;
                       ".\res\docs.bmp",   ;
                       ".\res\mail.bmp"    ;
                   }
                       
   local aBmp02 := { ;
                       ".\res\cemiterio.bmp", ;
                       ".\res\canideos.bmp",  ;
                       ".\res\felinos.bmp"    ;
                   }
                     
   local aBmp03 := { ;
                       ".\res\ctt.bmp",    ;
                       ".\res\stock.bmp",  ;
                       ".\res\report.bmp", ;
                       ".\res\report.bmp"  ;
                   }
                     
   local aBmp04 := { ;
                       ".\res\tools.bmp",    ;
                       ".\res\settings.bmp", ;
                       ".\res\data.bmp",     ;
                       ".\res\sair.bmp"      ;
                   }                        
   
   local aBmps  := { aBmp01, aBmp02, aBmp03, aBmp04 }
                     
   local aItems := { { "Junta Freguesia", ;
                       "População",       ;
                       "Documentos",      ;
                       "Correspondência"  ;
                     }, ;
                     { "Cemitério",       ;
                       "Canídeos",        ;
                       "Felinos"          ;
                     }, ;
                     { "C.T.T.",          ;
                       "Stocks",          ;
                       "Rel. Mensal",     ;
                       "Rel. Anual"       ;
                     }, ;
                     { "Utilitários",     ;
                       "Configuração",    ;
                       "Dados",           ;
                       "Sair"             ;
                     }, ;
                   }
                     
   local aTitGrps := { "Geral", "Taxas", "Contabilidade", "Ferramentas" }
                     
   SET EPOCH TO            1990
   SET CENTURY               ON
   SET DELETED               ON
   SET DATE FORMAT "DD/MM/YYYY"
   SET DECIMALS TO            2
   
   XBrNumFormat("E", .T.)
   
   SetResDebug(.T.)

   oWndUI            := TWindowsUI():PnelPPal(.T., lMax, lMdi, nCor, cTit, cUser, aBtt)
   oWndUI:lBttExitUI := .T.
   oWndUI:aBttExitUI := { ".\res\exit1.bmp", ".\res\exit2.bmp", 48, 20 }
   
   bAct := { | x, y, nF, oCol | XBrwMnu( oCol:oBrw:nRowSel, ;
                                         oCol:oBrw:nColSel, oCol ) }
                                         
   oWndUI:UIXPnel( oWndUI, aBmps, aTitGrps, 64, aItems, bAct )
   
   oWndUI:ActivaUI()
   
   Hb_GCall()
   
   CLEAR MEMORY
   
   if File( "checkres.txt" )
      FErase( "checkres.txt" )
   endif
   
   CheckRes()
   
 return nil
 
 /* ************************************************************************* */
   
function XBrwMnu( nRow, nCol, oCol )

   local nWinds  :=  Len( oWndUI:GetListWnds() )

   do case
      case nCol = 1
           do case
              case nRow = 1
                   TDialogUI():DlgMsgUI( "Nº de Janelas", Str( nWinds ), , , , , ,)
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      case nCol = 2
           do case
              case nRow = 1
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      case nCol = 4
           do case
              case nRow = 1
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      case nCol = 5
           do case
              case nRow = 1
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      case nCol = 7
           do case
              case nRow = 1
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      case nCol = 8
           do case
              case nRow = 1
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      case nCol = 9
           do case
              case nRow = 1
              case nRow = 2
              case nRow = 3
              case nRow = 4
           endcase
      otherwise
         if Empty( nCol ) .or. nCol > Len( oCol:oBrw:aCols )
            ? "Coluna nao definida"
         endif
   endcase

Return nil
   
 


Cualquier sugerencia?
LordJonas
 
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Postby cnavarro » Thu Aug 06, 2015 8:47 pm

Mandame un correo

Prueba asi
Te faltaban los separadores de grupos

Code: Select all  Expand view


   local aBmps  := { aBmp01, ,aBmp02, ,aBmp03, ,aBmp04 }
                     
   local aItems := { { "Junta Freguesia", ;
                       "População",       ;
                       "Documentos",      ;
                       "Correspondência"  ;
                     }, ;
                     {},;
                     { "Cemitério",       ;
                       "Canídeos",        ;
                       "Felinos"          ;
                     }, ;
                     {},;
                     { "C.T.T.",          ;
                       "Stocks",          ;
                       "Rel. Mensal",     ;
                       "Rel. Anual"       ;
                     }, ;
                     {},;
                     { "Utilitários",     ;
                       "Configuração",    ;
                       "Dados",           ;
                       "Sair"             ;
                     } ;
                   }


 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6522
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Previous

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 28 guests