Un modulo Touch hecho con FWH

Un modulo Touch hecho con FWH

Postby gabo » Wed Sep 27, 2006 8:21 pm

Image

Saludos
GABO
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Va de nuevo el link...

Postby gabo » Wed Sep 27, 2006 8:30 pm

espero que ahora si funcione

Image

Saludos
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Como haces los botones?

Postby leandro » Thu Sep 28, 2006 5:23 pm

Amigo primero que todo excelente trabajo.. de verdad que se ve espectacular. Felicitaciobes :D

Segundo que todo me gustaria saber como hiciste los botones sobre todo los verdes de la derecha. Excelente diseño.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1682
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Postby gabo » Thu Sep 28, 2006 10:39 pm

Leandro

Los controles de la pantalla son xBrowse, ButtonBmp y Todos los botones de la derecha son TsButton de manuel mercado.. la clase te permite pintar los botones con aparencia degradada tanto cuando tiene el foco y aun no teniendolo..
gracias por tu comentario.. la pantalla es el modulo principal de captura, pero depues esta la entrada de datos por teclado virtual.. y muchas opciones mas
saludos
GABO
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Re: Va de nuevo el link...

Postby Armando Picon » Fri Sep 29, 2006 10:39 pm

Lo que hiciste es espectacular!!!

Tengo una aplicación para restaurantes que lo tengo en desarrollo pero me quedé en la selección de los platos. Al ver tu aplicación mejor no sigo. Para cuando lo termines a ver si te lo promociono en Perú.

gabo wrote:espero que ahora si funcione

Image

Saludos
User avatar
Armando Picon
 
Posts: 446
Joined: Mon Dec 26, 2005 9:11 pm
Location: Lima, Peru

Postby Silvio » Sat Oct 07, 2006 8:29 am

Dear GAbo,

Can YOU release a sample source code of this ?

Regards
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby jllinas » Sat Oct 07, 2006 3:05 pm

Esta muy bien....

Una sola pregunta: ¿Que tiene "traspaso" como propósito? ¿Que hace esta opcion/botón?
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Postby wmormar » Sat Oct 07, 2006 6:38 pm

jllinas wrote:Esta muy bien....

Una sola pregunta: ¿Que tiene "traspaso" como propósito? ¿Que hace esta opcion/botón?


jllinas,

Traspaso es para pasar (valga la rebusnancia) el consumo de una mesa a otra.

:lol:
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Que hace el boton traspaso

Postby gabo » Tue Oct 10, 2006 12:26 am

El boton "traspaso" lo que realiza es cambiar el producto de una mesa "10" a la mesa "20".. a veces el cajero o vendedor (mesero) se equivoca en la captura
Code: Select all  Expand view  RUN

DEFINE DIALOG oDlgMesas RESOURCE "DLG_PRODUCTOSCOMANDERO" OF oApp:oWndMain;
        TITLE "MESA: " + aDatosMesa[1] + " " + aDatosMesa[3]

REDEFINE BUTTONBMP aBtnsConsu[1] ID 600 OF oDlgMesas BITMAP "BMP_NUEVACOMANDA";
          PROMPT "&Agregar" TEXTBOTTOM

REDEFINE BUTTONBMP aBtnsConsu[2] ID 605 OF oDlgMesas BITMAP "BMP_MASUNO";
          ACTION OnActionMasUno(oBrwConsu, oSaysGet) ;
          PROMPT "(+) Uno"+CRLF+" " TEXTBOTTOM
.
.
.


// Botones de lineas ----------------------------
REDEFINE SBUTTON aBtnsLines[ 1] ID 900 OF oDlgMesas
.
.

// Botones de productos por lineas ----------------------------
REDEFINE SBUTTON aBtnsProdu[ 1] ID 914 OF oDlgMesas
REDEFINE SBUTTON aBtnsProdu[ 2] ID 915 OF oDlgMesas
REDEFINE SBUTTON aBtnsProdu[ 3] ID 916 OF oDlgMesas
.
.
.

// carga los botones de las lineas

FOR EACH oBtn IN aBtnsLines
     IF hb_EnumIndex() <= Len( aLineas )
       oBtn:cCaption:= Str2Lines( AllTrim( aLineas[ hb_EnumIndex(), 1 ] ), " " )
                       //Str2Lines( AllTrim(produc->DESC1), " " )

       oBtn:nClrText:= { |oB| If( oB:lMouseOver, CLR_WHITE, CLR_RED ) }
       oBtn:nClrBack:= { |oB| If( oB:lMouseOver, { nRgb(0,119,176), nRgb(255,255,255), 1 }, ;
                                                 { nRgb(128,128,255), nRgb(255,255,255), 1 } ) }
       oBtn:cargo   := { .F., aLineas[hb_EnumIndex(), 3] }
       oBtn:bAction := { || AEVAL( aBtnsLines, ;
                          { |oB| IF( oB:lEverPress, (oB:lEverPress:= .F., oB:cargo[1]:= .F.,;
                             oB:nClrBack:= { nRgb(128,128,255), nRgb(255,255,255), 1 },oB:refresh() ), .F. ) } ), ;
                            oBtn:cargo[1]:= !oBtn:cargo[1], ;
                        If( oBtn:cargo[1], ;
                          ( oBtn:lEverPress := .T., ;
                            oBtn:nClrBack:= { nRgb(0,119,176 ), nRgb(255,255,255), 5 }, ;
                            GetProductoPorLinea( oBtn:cargo[2], aBtnsProdu, oBrwConsu, aBtnScroll, ;
                                                 oSaysGet, oFntBrow ) ) , ;
                          ( oBtn:lEverPress := .F., oBtn:cargo[2]:= "   ",;
                            oBtn:nClrBack:= { nRgb(128,128,255), nRgb(255,255,255), 1 } ) ), ;
                            oBtn:refresh() }
       oBtn:oFont:= oFntSays
       oBtn:Refresh()
     ELSE
        oBtn:disable()
     ENDIF
NEXT

// Botones de scroll de lineas y productos por lineas
REDEFINE BUTTONBMP aBtnScroll[1] ID 912 OF oDlgMesas BITMAP "BMP_UP_BTN";
          ACTION OnActionUpLines( @aBtnsLines, aLineas, aCargos, aBtnScroll, oBrwConsu, aBtnsProdu )

REDEFINE BUTTONBMP aBtnScroll[2] ID 913 OF oDlgMesas BITMAP "BMP_DOWN_BTN";
          ACTION OnActionDownLines( @aBtnsLines, aLineas, aCargos, aBtnScroll, oBrwConsu, aBtnsProdu )

REDEFINE BUTTONBMP aBtnScroll[3] ID 938 OF oDlgMesas BITMAP "BMP_UP_BTN";
          ACTION OnActionUpProducto( aBtnsProdu, aBtnScroll )

REDEFINE BUTTONBMP aBtnScroll[4] ID 939 OF oDlgMesas BITMAP "BMP_DOWN_BTN";
          ACTION OnActionDownProducto( aBtnsProdu, aBtnScroll )

REDEFINE BUTTONBMP oBtnExit ID 549 OF oDlgMesas BITMAP "BMP_SALIRTPV" ;
          PROMPT "S" + CRLF + "a"  + CRLF + "l"  + CRLF + "i"  + CRLF + "r"+CRLF + " ";
          ACTION ( lSalida:= TRUE, oDlgMesas:End() );
          TEXTBOTTOM

WITH OBJECT oBrwConsu:= TXBrowse():New( oDlgMesas )
      :nHeaderHeight       := 25
      :nRowHeight          := 35
      :nMarqueeStyle       := MARQSTYLE_HIGHLROW
      :nColDividerStyle    := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle    := LINESTYLE_LIGHTGRAY
      :lColDividerComplete := .T.
      :lHScroll            := .T.
      :lVScroll            := .T.
      // :oFont               := oFntBrow
      :bChange:= {|| oSaysGet[6]:SetText( RTRIM( consum->NOTA1 ) + " " + RTRIM(consum->NOTA2) ), ;
                     oSaysGet[6]:refresh() }
END
WITH OBJECT oCol := oBrwConsu:AddCol()
      :bStrData  := { || TRANSFORM( consum->CANTIDAD, "999,999" ) }
      :cHeader   := "Cantidad"
      :nDataStrAlign:= AL_RIGHT
      :nWidth    := 40
      :cHeader   := "Canti"
      :oHeaderFont:= oFntHead
      :oDataFont  := oFntBrow
END
WITH OBJECT oCol := oBrwConsu:AddCol()
      :bStrData  := { || HB_OemToAnsi(consum->NOMB_PROD) }
      :nWidth    := 200
      :cHeader   := "Nombre del producto"
      :oHeaderFont:= oFntHead
      :oDataFont  := oFntBrow
END
.
.
.

oBrwConsu:SetRDD()
oBrwConsu:CreateFromResource(550)

REDEFINE GSAY oSaysGet[1] VAR aVars[1] ID 750 OF oDlgMesas PICTURE '99,999,999' ;
.
.
.

ACTIVATE DIALOG oDlgMesas ;
          ON INIT ( OnInitProductos( @aVars, @aConsumo ), oBrwConsu:SetFocus() ) ;
          ON PAINT DrawBitmap( oDlgMesas:hDC, oBmpFondo:hBitmap, 0, 0, oBmpFondo:nWidth(), ;
                   oBmpFondo:nHeight(),  aBtnsConsu[1]:disable(), aBtnsConsu[1]:hide(), ;
                   aBtnsConsu[1]:refresh(), aBtnsConsu[8]:disable(), aBtnsConsu[8]:hide(), aBtnsConsu[8]:refresh());
          CENTERED VALID ( oFntSays:End(), oFntGets:End(), oFntBrow:End(), ;
                           oFntTota:End(), DestroyBtns( aBtnsLines ), ;
                           DestroyBtns( aBtnScroll ), DestroyBtns( aBtnsProdu ),  nPageLines:= 0, ;
                           nElemenLines:= 12, consum->( ORDSCOPE( 0, NIL ) ), ;
                           consum->( ORDSCOPE( 1, NIL  ) ), lSalida )



Saludos
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Postby Silvio » Tue Oct 10, 2006 9:15 am

GOOD ...Mr Gabo

can I see the Str2Lines() function ?

REGARDS
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby gabo » Tue Oct 10, 2006 2:53 pm

Hi, silvio
the function Str2Lines() it is an adaptation the function Str2a() the what32. the function Str2Lines() returns a string with character CRLF in the place the character Space

example:
a:= Str2Lines("Hi silvio is a example")

? a

Hi
Silvio
is
a
example

Regards
GABO
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Postby Silvio » Tue Oct 10, 2006 9:40 pm

I have a problem :
I created a coffee touch screen bar
I can to set ( configuration) each button on product but when I inset the description on a button it run bad because I founding a function to divide the strings
example

cod :=1
desc:="Prosciutto cotto con formaggio e pomodoro"

I wanted insert on a button
"Prosciutto cotto"
"con formaggio"
"e pomodoro"

Have you an idea ?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby gabo » Wed Oct 11, 2006 11:08 pm

Silvio,

my mail is gornelas at prodigy.net.mx

Regards

GABO
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 49 guests