Metro Class on notebooks

User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Post by cnavarro »

FWH which version are you using?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
LordJonas
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Post by LordJonas »

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

Post by LordJonas »

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

freguesia.prg

Code: Select all

/* ************************************************************************** *
 * 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

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

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

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

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??
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Post by cnavarro »

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
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Post by cnavarro »

My mail

navarro . cristobal at gmail . com ( non spaces )

My english is very poor
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
LordJonas
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Post by LordJonas »

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:
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Post by cnavarro »

Has conseguido generar los ejemplos?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
LordJonas
Posts: 35
Joined: Wed Jun 30, 2010 8:04 pm

Re: Metro Class on notebooks

Post by LordJonas »

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

Post by LordJonas »

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

/* ************************************************************************** *
 * 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?
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Metro Class on notebooks

Post by cnavarro »

Mandame un correo

Prueba asi
Te faltaban los separadores de grupos

Code: Select all


   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"             ;
                     } ;
                   }


 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply