![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Quise editar y no pude
No dije nada, no dije nada, ya se me iluminó la lamparita
Saludos |
|
#2
|
|||
|
|||
|
I'm back!
Buenas, no me conectaba desde el 29/5, hacía rato no me daba una vuelta por aquí. Por distintos motivos la calculadora la dejé en stand by pero esta semana la retomé y les quería pedir una mano porque estoy trancado.
Lo que me pasa es lo siguiente, hago múltiples operaciones y me dan todas ok hasta que hago la siguiente combinación: 5 + 5 - 1 x 2 / 2. Que de forma correcta (igual que la calculadora de Windows que es la que quiero emular, jeje) me da 9. 5 + 5 = 10 10 - 1 = 9 9 x 2 = 18 18 / 2 = 9 Pero la siguiente operación que hago después de esa secuencia me da mal. Ejemplo hago 5 x 5 y me da 24, 5 + 5 me da 9, 6 x 6 me da 35, 9 x 9 me da 80. Si, como podrán ver, me da uno menos del resultado correcto. Viendo eso sería sencillo identificar el problema pero no me doy cuenta que puede estar mal. Si teóricamente después de apretar el botón = vuelvo todo a cero, sería como cerrar y volver a ejecutar la calculadora (aunque evidentemente no lo es). Es más, por las dudas también aprieto el botón C que lo que hace es "poner todo en cero", y nada, hasta que no cierre la calculadora seguirá dando un número menos. Probando hice otra operación, en este caso 5 + 10 - 2 x 2 / 2 = 13 (correcto). Todo lo que hago luego de eso me da DOS números menos que lo correcto. Ejemplo 5 x 5 me da 23. Les dejo lo que yo entiendo que necesitarían ver de este código para que puedan decirme donde la estoy macaneando y un link al .exe de la calculadora (no se rían, está en fase ultra beta, jaja). Les dejo la declaración de variables, el form on create, el botón igual, el botón +, el botón C y un número, en este caso el 1. Cita:
drive.google.com/open?id=0B2s4ogym-XembWY5Vl8tV2tBcEE Si les sirve más el proyecto completo les dejo el link para descargar el rar. Aclaraciones: *Por el momento funciona solo haciendo click con el mouse, ya aprenderé como hacer para que los botones del teclado accionen (con animación incluida es mi idea, no sé si es posible) los botones de la calculadora. *Los únicos botones que andan son los números, los signos de +, -, X, /, el de borrar todo (C), el = y el de borrar de a uno (<). Desde ya muchas gracias. |
|
#3
|
|||
|
|||
|
Never mind (?)
Creo haberme dado cuenta del problema, olvídense, cualquier cosa los vuelvo a molestar.
Gracias |
|
#4
|
|||
|
|||
|
KeyDown
Bueno, esta vez si me tranqué de verdad...
La calculadora ya funciona de forma correcta en lo que tiene que ver con hacer operaciones, pero ahora quiero poder ingresar los números por teclado también, y entiendo que tengo que manejar el evento KeyDown, pero no hay caso, no lo puedo hacer funcionar. Vi algunos ejemplos en internet e intenté replicarlos pero no hubo caso. Lo que tengo es lo siguiente: Cita:
Variantes probé varias, probé if key = #49, if (key = #49), if key in [49], if key in [#49] y varias más que ahora no recuerdo, algunas dieron error y otras compilaron bien pero ninguna funcionó. Claramente estoy haciendo algo mal. Gracias por su ayuda. P.D.: Por si a alguien le interesa, acá el link del ejecutable actual de la calculadora drive.google.com/open?id=0B2s4ogym-XemRUNPbzhtaWcxbEE |
|
#5
|
||||
|
||||
|
Proba seteando la propiedad KeyPreview del Form a True
|
|
#6
|
|||
|
|||
|
Gracias
Pero la p... que fácil que era.
Me funciona con el botón de arriba a la izquierda, abajo del F1, y no con el numérico que está a la derecha, pero supongo que es una cuestión de cambiarle el número, en lugar de 49 tendré que usar otro. Muchas gracias, me destrancaste, jeje. EDITO: ¿Cuáles son los números ascii de las teclas numéricas de la derecha?, ¿o cómo puedo capturar para saber qué código son usando el evento?. Recién puse un ShowMessage() y se disparó al apretar el 1 del teclado numérico, pero, ¿cómo almaceno eso para saber qué código tengo que poner en el IF?. Gracias. |
|
#7
|
||||
|
||||
|
Podes usar las constantes VK_NUMPADX, donde X es un numero entre 0-9. Estas estan definidas en la unidad Winapi.Windows
Te recomiendo que uses estas constantes en lugar de, como suele llamarseles, "valores magicos", porque el 13 es el enter, y el 27 el escape, pero es mas practico leer VK_ESCAPE, VK_RETURN, etc |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Opinión sobre la estabilidad actual de Lazarus/Free Pascal | Toni | Lazarus, FreePascal, Kylix, etc. | 34 | 06-02-2016 01:04:45 |
| Soy desarrollador de Delphi ¿Que necesito saber para usar Lazarus? | Godzuki | Linux | 7 | 23-02-2012 23:54:34 |
| Lazarus, Nemesis Pascal | rmendoza83 | Varios | 1 | 08-01-2009 17:41:08 |
| Indy soporta Free Pascal/Lazarus | Delfino | Noticias | 6 | 15-01-2006 10:55:55 |
| Free Pascal y Lazarus | Magician^ | Noticias | 7 | 31-03-2004 19:12:04 |
|