Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Teclado virtual (https://www.clubdelphi.com/foros/showthread.php?t=64021)

toni.vi 12-03-2009 17:36:28

Teclado virtual
 
Hola,
Hasta ahora tengo programado unos speedbuttons dentro de un formulario para simular un teclado virtual y con pantalla tactil pueden ir entrando codigos.
Ahora debo hacer que este teclado tambien purda entrar datos en otro formulario dentro de la misma aplicacion, por tanto para no programar un teclado en cada form, necesitaria saber como puedo enviar unos valores a unos campos que estan en el formulario activo y en el control activo.
Ahora utilizo.
Código Delphi [-]
(ActiveControl as TEdit).Text := (ActiveControl as TEdit).Text + (Sender as TSpeedButton).caption;
Necesito algo similar para otros formularios.
Si fuera posible como un teclado virtual mucho mejor.
Toni

duilioisola 12-03-2009 18:05:54

Mira los hilos que tienes al final de la página.
Por ejemplo:

Este
Cita:

El teclado virtual de windows lo puedes invocar llamando al programa osk.exe, solo seria cuestion de que regreses el foco a la aplicacion, y al guardar el registro o algo cierras la ventana del teclado virtual

acabo de hacer una pequeña prueba en delphi 5, una forma, 1 boton para invocar el teclado y 1 memo para escribir, en el boton puse este codigo:

Código Delphi [-]

mmo1.SetFocus; //pasar el foco al memo
WinExec('osk.exe',SW_SHOWNOACTIVATE);
Este dice:
Cita:

Mira este enlace: http://delphi.about.com/od/adptips20...ltip1104_3.htm

Bájate la unit SndKey32.pas (si no la tienes).

Abre el Bloc de notas y en un button de tu aplicación pon este código y tendría que funcionar:

Código Delphi [-]

AppActivate('Sin título - Bloc de notas');
SendKeys('abc123{left}{left}{left}def{end}456{left 6}ghi{end}789', True);
Aqui
Tienes otro...

toni.vi 12-03-2009 18:18:58

Perdón, me olvide decir que quiero redimensionar los botones, porque los del osk.exe son muy pequeños, por tanto necesito programarlo.
En cuanto a la segunda opcion ya lo mirare.
Gracias

dec 12-03-2009 18:58:19

Hola,

Yo creo que encontrarías componentes para Delphi (en Torry's, por ejemplo), aunque, si no existen, tal vez podrías crear uno tú mismo. Basándote en un formulario, por ejemplo, podrías ahí situar todos los botones (letras y números) que necesitases. Este componente podría programarse de forma que fuera, hasta cierto punto, independiente del formulario en que se usase. Para que se me entienda, construiríamos una especie de diálogo, al estilo del "TOpenFile", que mostraríamos allí donde fuese menester. No digo que sea sencillo, y, podrá complicarse lo que se quiera, pero, creo que puede hacerse, ya digo, en caso de que no encuentres algo ya hecho (que creo que lo encontrarás).

toni.vi 12-03-2009 19:10:48

He buscado por todos los sitios y no encuentro nada.
Intento evitar que se cargue un form con el teclado en cada formulario de la aplicación porque no es la mejor solución.

dec 12-03-2009 19:22:07

Hola,

Pues ya te digo, si no encuentras nada (aunque algo hay en Torry's) que te interese, tendrás que ser tú quien lo haga. He releído tu primer mensaje, y, tal vez podrías usar "frames", en lugar de un formulario, de modo que pudieras compartir el mismo frame en diferentes formularios. Este frame "sabe" quién es su formulario padre, así que podrías acceder a los controles de este. De todas formas, es algo que tendrás que estudiar, estas cosas tienden a complicarse, y, me temo que hay que saber los detalles del asunto.

luisgutierrezb 12-03-2009 19:33:34

bueno, creo que mas bien tendrias que tener el teclado como un formulario solo y aparte, el cual puedes "embeber" en cada formulario, asi podrias crear tantos teclados como quisieras en la posicion que quieras, y para mandar las teclas con solo:

Código Delphi [-]
if formteclado.parent.activecontrol is tedit then
(formteclado.parent.ActiveControl as TEdit).Text := (formteclado.parent.ActiveControl as TEdit).Text + (Sender as TSpeedButton).caption;

Lo hice al tanteo pero la idea es esa... el como poner un form en otro form puedes buscar aqui en el foro es un tema ya tratado

toni.vi 12-03-2009 21:16:41

Pues si, probaremos esta opción.
De todas formas hace falta que alguien desarrolle un teclado virtual en condiciones y por supuesto en delphi.
Puedo utilizarlo en campos Edit, pero en lookups y otros controles la cosa se complica y solo lo puedo resolver con un teclado virtual que se pueda configurar el tamaño de las teclas segun el screen.width con scaleby, etc.
Si alguien puede ayudarme en crear este teclado lo pondría a disposicion del foro.


La franja horaria es GMT +2. Ahora son las 08:57:23.

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