Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Escribir Texto utilizando Numeros :) (https://www.clubdelphi.com/foros/showthread.php?t=39783)

DTAR 29-01-2007 23:53:39

Escribir Texto utilizando Numeros :)
 
Hola gente... gracias ante todo....
Resulta que quiero hacer que una aplicacion pueda escribir palabras (letras) utilizando el teclado numerico..como lo hacemos cuando mandamos un mensaje de texto en nuestros celulares..
Ej:
Apretando 1 vece el numero 3 pongo la letra D
Apretando 2 veces el numero 3 pongo la letra E
Apretando 3 veces el numero 5 pongo la letra L
Apretando 1 vece el numero 7 pongo la letra P
Apretando 2 veces el numero 4 pongo la letra H
Apretando 3 veces el numero 9 pongo la letra I
Y asi formo DELPHI
alguno sabe de esto o se le ocurre alguna idea....(que no sea ponerle un timer a un procedimiento )

Caral 30-01-2007 00:05:46

Hola DTAR
Se me ocurre:
Código Delphi [-]
IF edit1 = '1' then
edit1:= 'A';
IF edit1 = '11' then
edit1:= 'B';
IF edit1 = '111' then
edit1:= 'C';
IF edit1 = '2' then
edit1:= 'D';
IF edit1 = '22' then
edit1:= 'E';
Con esto se podria empezar a analizar el procedimiento.
Bueno es una idea.:D
Saludos

DTAR 30-01-2007 00:13:49

Caral...
a esa idea habria que agregarle un timer como para que funcione...
si puede andar... pero me parece poco "elegante" jejeje
pero muchas gracias por el aporte y la buena onda...

PabloTech 30-01-2007 00:29:48

Me parece dificil
 
:( A mi también me parece que hace falta un timer. Por ejemplo, para determinar si se pulsó una ó dos veces una tecla del ratón se usa un timer corto. Pero, brinda mas detalles sobre cómo te gustaría que funcione o qué otras teclas quieres utilizar.

Suerte...:)

Caral 30-01-2007 00:36:28

Bueno
La verdad no se para que un timer?
No importa cuantas veces se pulse una tecla.
Si pulsas una vez el 1 pues te dara 1
Si pulsas dos veces el uno pues sera 11
Y asi sucesivamente, no entiendo la necesidad de un timer, para que?
Saludos

PabloTech 30-01-2007 00:44:16

:o Paciencia amigos... Por eso pedía más detalles. Uds. dicen:
Cita:

Si pulsas una vez el 1 pues te dara 1; y,
Si pulsas dos veces el uno pues sera 11, ...
Pero no aclaran que entre 1 y otro 11 ya pulsaron INTRO en dos oportunidades.

Sigamos...

DTAR 30-01-2007 00:53:24

No entiendo lo del intro pero bueno...

que pasa si yo quiero poner la palabra "de"...
tengo que apretar 3 veces el numero 3...
o sea que voy a tener 111 y tendria la "f"
el timer seria para apretar 1 ves el 3 y poner la "d"
y con el timer pasar a la siguiente tecla y apretar 2 veces y tener 11 para la letra "e"....

roman 30-01-2007 03:34:15

1 Archivos Adjunto(s)
Les dejo un ejemplo más o menos funcional. No es muy elegante elegante, pero no usa un timer :)

Traté de comentar lo mejor posible el código porque el escribir la explicación se me estaba haciendo más complicado de lo que realmente es. Básicamente se toma el tiempo actual cada vez que se oprime una tecla y:

si es la misma tecla que la anterior y no se ha excedido un tiempo predeterminado, se escribe el siguiente caracter asociado a la tecla en el mismo lugar que el anterior. Si es otra tecla o ya se había excedido el tempo, entonces se escribe el primer caracter asociado a la tecla en la siguiente posición.

El ejecutable que viene en el zip sólo sirve si tienen instalado Delphi 7, si no, tiene que recompilar.

// Saludos

mamcx 30-01-2007 05:01:44

Sin ver el codigo, eso no se hace con una maquina de estado?

Lepe 30-01-2007 10:50:54

DTAR paténtalo aplicado al ordenador, que así ahorramos mucho espacio con los teclados de ordenadores... al fin y al cabo, lo mismo se hace con los monitores, que se buscan planos o que no existan :eek:.

Saludos

PabloTech 30-01-2007 13:30:33

La Solución
 
Perfecto... roman.

Así es como trabaja el ratón... y creo, que esta es la solución a todo...

Chau... Nos vemos...:)

Caral 30-01-2007 17:55:23

Bueno que decir:eek:
Cuando sea grande quiero ser como roman :D
Me da una envidia siempre nos dejas con la voca:eek:
La idea de DTAR tiene muchas aplicaciones y el codigo de roman pues que decir, lo hace todo, solo hay que incluir facilmente los puntos, comas ect.
Puede ser en el numero 0.
Me he quedado frio, lo peor es que me doy cuenta de lo que me falta por aprender, Huyyyy.:D
Roman, siempre lo digo, eres un maestro.
Saludos

roman 30-01-2007 17:57:27

¡Hasta ahora entiendo que querías decir! :o ¡Te refieres al doble click! :)

// Saludos

roman 30-01-2007 18:04:04

Cita:

Empezado por Caral
Roman, siempre lo digo, eres un maestro.

¡No hombre, no! Era sólo cuestión de fijarse bien en como funciona el teclado telefónico, para lo cual abrí mi celular y oprimí unas cuantas teclas, cosa que cualquier adolescente habría tenido claro desde un principio :D. Sería un maestro si realmente hubiera hecho una máquina de estado, pero sólo fueron unos cuantos ifs y elses :o

// 7777 2 555 88 3 666 7777

Caral 30-01-2007 18:27:24

Hola Roman
Me queda esta duda:
A que te refieres con esto:
Cita:

máquina de estado,
Que es?, un programa especial o algo asi?
Saludos

mamcx 30-01-2007 19:06:09

Maquina de estado = State Machine

La mas sencilla:

http://en.wikipedia.org/wiki/Finite_state_machine

Es la base de todo sistema de workflow.

No es tan complejo. Solo que no es tan sencillo. Pero cuando una cosa tiene workflow es mas facil que muchos ifs y eventos regados.

Una maquina de estado tambien es la base de todo parser...

seoane 30-01-2007 19:17:34

Moore y Mealy, esto me recuerda a las clase de electrónica digital en la universidad. Implementar autómatas con puertas lógicas y biestables ... que recuerdos. :)

roman 30-01-2007 20:39:20

¿Lo ves? Ellos son maestros :)

// Saludos

DTAR 30-01-2007 21:03:46

muy groso lo de usted Roman... jejej
muy buen ejemplo... sobre todo MUY ELEGANTE su codigo ....

nose para que mas puede servir... ami me sirver porque tengo solo un tecladito numerico y puedo darle mas funcionalidad a mis ventanas...
gracias...
y muy buena onda de todo el foro....

roman 30-01-2007 21:14:57

A ver, a ver, ¿estás diciendo que tienes un teclado para la pc que sólo tiene números? :eek: Nunca los he visto

// Saludos


La franja horaria es GMT +2. Ahora son las 10:19:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi