Clarion - Ayuda

 
Vista:

Ayuda

Publicado por Andrade (159 intervenciones) el 13/10/2006 21:05:28
Quiero poner unos botones cada uno con un numero ej. 1, 2, 3, etc., al presionar uno de ellos, que se refleje en un entry por ej. al presionar los botones 1,2,3,4 que en el entry aparezca 1234, y que se pueda borrar por ej. al presionar un boton borrar quede en el entry 123
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Calculadora

Publicado por Joan (18 intervenciones) el 14/10/2006 01:06:26
Hola Andrade , creas un new project y en el codigo CLW le escribes este, esta probado y creo funciona como tu quieres. puedes copiar y pegar si quieres.
la linea Calculadora WINDOW ......,DOUBLE,AUTO es una sola todo en la misma linea aunque aqui como no cabe aparece cortada en 2 lineas.
Lo que aqui es muy didactico es ver el funcionamiento del bucle ACCEPT
Espero te sirva para tus propositos.
Cualquier duda me escribes.
Saludos Joan.

PROGRAM

INCLUDE('EQUATES.CLW')
INCLUDE('KEYCODES.CLW')
MAP.

Numero REAL
NuevoNumero BYTE
Digito BYTE

Calculadora WINDOW('Calculadora'),AT(80,7,106,113),SYSTEM,GRAY,DOUBLE,AUTO
BUTTON('&0'),AT(45,93,14,12),USE(?Cero),FONT('Arial',12,,),KEY(KeyPad0)
BUTTON('&1'),AT(25,39,14,12),USE(?Uno),FONT('Arial',12,,),KEY(KeyPad1)
BUTTON('&2'),AT(45,39,14,12),USE(?Dos),FONT('Arial',12,,),KEY(KeyPad2)
BUTTON('&3'),AT(65,39,14,12),USE(?Tres),FONT('Arial',12,,),KEY(KeyPad3)
BUTTON('&4'),AT(25,57,14,12),USE(?Cuatro),FONT('Arial',12,,),KEY(KeyPad4)
BUTTON('&5'),AT(45,57,14,12),USE(?cinco),FONT('Arial',12,,),KEY(KeyPad5)
BUTTON('&6'),AT(65,57,14,12),USE(?Seis),FONT('Arial',12,,),KEY(KeyPad6)
BUTTON('&7'),AT(25,75,14,12),USE(?Siete),FONT('Arial',12,,),KEY(KeyPad7)
BUTTON('&8'),AT(45,75,14,12),USE(?Ocho),FONT('Arial',12,,),KEY(KeyPad8)
BUTTON('&9'),AT(65,75,14,12),USE(?Nueve),FONT('Arial',12,,),KEY(KeyPad9)
BUTTON('CE'),AT(65,93,14,12),USE(?Borra),FONT('Arial',10,,)
BUTTON('+/-'),AT(25,93,14,12),USE(?Signo),FONT('Arial',10,,)
ENTRY(@s20),AT(4,9,97,23),USE(Numero),RIGHT(3),INS
END

CODE
OPEN(Calculadora)
NuevoNumero = True
ACCEPT
DISPLAY
IF ACCEPTED()

CASE ACCEPTED()
OF ?Cero TO ?Nueve
Digito = ACCEPTED() - ?Cero
IF NuevoNumero
Numero = Digito
NuevoNumero = False
ELSE
Numero = Numero * 10 + Digito
END
CYCLE
OF ?Borra
IF NuevoNumero THEN
END
Numero = 0
NuevoNumero = 0
END

CASE ACCEPTED()
OF ?Signo
Numero *= -1
END
SELECT(?Cero)
NuevoNumero = TRUE
END
END
CLOSE(Calculadora)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Este si se pego bien

Publicado por Joan (18 intervenciones) el 14/10/2006 10:38:40
de todas formas la lines Calculadora WINDOW('......)....,DOUBLE,AUTO es toda en una sola linea

PROGRAM

INCLUDE('EQUATES.CLW')
INCLUDE('KEYCODES.CLW')
MAP
END
Numero REAL
NuevoNumero BYTE
Digito BYTE

Calculadora WINDOW('Calculadora'),AT(80,7,106,113),SYSTEM,GRAY,DOUBLE,AUTO
BUTTON('&0'),AT(45,93,14,12),USE(?Cero),FONT('Arial',12,,),KEY(KeyPad0)
BUTTON('&1'),AT(25,39,14,12),USE(?Uno),FONT('Arial',12,,),KEY(KeyPad1)
BUTTON('&2'),AT(45,39,14,12),USE(?Dos),FONT('Arial',12,,),KEY(KeyPad2)
BUTTON('&3'),AT(65,39,14,12),USE(?Tres),FONT('Arial',12,,),KEY(KeyPad3)
BUTTON('&4'),AT(25,57,14,12),USE(?Cuatro),FONT('Arial',12,,),KEY(KeyPad4)
BUTTON('&5'),AT(45,57,14,12),USE(?cinco),FONT('Arial',12,,),KEY(KeyPad5)
BUTTON('&6'),AT(65,57,14,12),USE(?Seis),FONT('Arial',12,,),KEY(KeyPad6)
BUTTON('&7'),AT(25,75,14,12),USE(?Siete),FONT('Arial',12,,),KEY(KeyPad7)
BUTTON('&8'),AT(45,75,14,12),USE(?Ocho),FONT('Arial',12,,),KEY(KeyPad8)
BUTTON('&9'),AT(65,75,14,12),USE(?Nueve),FONT('Arial',12,,),KEY(KeyPad9)
BUTTON('CE'),AT(65,93,14,12),USE(?Borra),FONT('Arial',10,,)
BUTTON('+/-'),AT(25,93,14,12),USE(?Signo),FONT('Arial',10,,)
ENTRY(@s20),AT(4,9,97,23),USE(Numero),RIGHT(3),INS
END

CODE
OPEN(Calculadora)
NuevoNumero = True
ACCEPT
DISPLAY
IF ACCEPTED()

CASE ACCEPTED()
OF ?Cero TO ?Nueve
Digito = ACCEPTED() - ?Cero
IF NuevoNumero
Numero = Digito
NuevoNumero = False
ELSE
Numero = Numero * 10 + Digito
END
CYCLE
OF ?Borra
IF NuevoNumero THEN
END
Numero = 0
NuevoNumero = 0
END

CASE ACCEPTED()
OF ?Signo
Numero *= -1
END
SELECT(?Cero)
NuevoNumero = TRUE
END
END
CLOSE(Calculadora)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

3er intento

Publicado por Joan (18 intervenciones) el 14/10/2006 10:58:34
A la tercera sera la buena ?
como esta forma de incluir aqui texto se come los espacios al inicio de linea he añadido un punto al principio de las lineas que no pueden iniciar en la columna 1
haber si a la tercera es la buena.

. PROGRAM
.
. INCLUDE('EQUATES.CLW')
. INCLUDE('KEYCODES.CLW')
. MAP
. END
.
Numero REAL
NuevoNumero BYTE
Digito BYTE
.
Calculadora WINDOW('Calculadora'),AT(80,7,106,113),SYSTEM,GRAY,DOUBLE,AUTO
. BUTTON('&0'),AT(45,93,14,12),USE(?Cero),FONT('Arial',12,,),KEY(KeyPad0)
. BUTTON('&1'),AT(25,39,14,12),USE(?Uno),FONT('Arial',12,,),KEY(KeyPad1)
. BUTTON('&2'),AT(45,39,14,12),USE(?Dos),FONT('Arial',12,,),KEY(KeyPad2)
. BUTTON('&3'),AT(65,39,14,12),USE(?Tres),FONT('Arial',12,,),KEY(KeyPad3)
. BUTTON('&4'),AT(25,57,14,12),USE(?Cuatro),FONT('Arial',12,,),KEY(KeyPad4)
. BUTTON('&5'),AT(45,57,14,12),USE(?cinco),FONT('Arial',12,,),KEY(KeyPad5)
. BUTTON('&6'),AT(65,57,14,12),USE(?Seis),FONT('Arial',12,,),KEY(KeyPad6)
. BUTTON('&7'),AT(25,75,14,12),USE(?Siete),FONT('Arial',12,,),KEY(KeyPad7)
. BUTTON('&8'),AT(45,75,14,12),USE(?Ocho),FONT('Arial',12,,),KEY(KeyPad8)
. BUTTON('&9'),AT(65,75,14,12),USE(?Nueve),FONT('Arial',12,,),KEY(KeyPad9)
. BUTTON('CE'),AT(65,93,14,12),USE(?Borra),FONT('Arial',10,,)
. BUTTON('+/-'),AT(25,93,14,12),USE(?Signo),FONT('Arial',10,,)
. ENTRY(@s20),AT(4,9,97,23),USE(Numero),RIGHT(3),INS
. END
.
. CODE
. OPEN(Calculadora)
. NuevoNumero = True
. ACCEPT
. DISPLAY
. IF ACCEPTED()
.
. CASE ACCEPTED()
. OF ?Cero TO ?Nueve
. Digito = ACCEPTED() - ?Cero
. IF NuevoNumero
. Numero = Digito
. NuevoNumero = False
. ELSE
. Numero = Numero * 10 + Digito
. END
. CYCLE
. OF ?Borra
. IF NuevoNumero THEN
. END
. Numero = 0
. NuevoNumero = 0
. END
.
. CASE ACCEPTED()
. OF ?Signo
. Numero *= -1
. END
. SELECT(?Cero)
. NuevoNumero = TRUE
. END
. END
. CLOSE(Calculadora)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar