Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2007
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Poder: 0
federicorl Va por buen camino
Teclado touchscreen

estoy trabajando con una aplicacion en touch screen que no va a presisar de teclado y mouse, asi que necesito un tecladito virtual que se pueda activar con los dedos desde el monitor, pero que las teclas que se pulsen se capturen en la aplicacion activa en primer plano, por ejemplo que al tocar la letra "A" esta se capture en Word

solo denme un buen tip que del resto yo me encargo

de antemano gracias les mando un saludo afectuoso
Responder Con Cita
  #2  
Antiguo 27-11-2007
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.049
Poder: 11
juanelo Va por buen camino
Que tal,
Se me ocurre que tu teclado virtual lo puedes implementar con un formolario y por cada letra y número que necesites pues lo hagas corresponder con un boton cuya función sea precisamente mandar el caracter al editor que decidas.
Saludos
Responder Con Cita
  #3  
Antiguo 28-11-2007
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Poder: 0
federicorl Va por buen camino
casi, casi pero

Cita:
Empezado por juanelo Ver Mensaje
Que tal,
Se me ocurre que tu teclado virtual lo puedes implementar con un formolario y por cada letra y número que necesites pues lo hagas corresponder con un boton cuya función sea precisamente mandar el caracter al editor que decidas.
Saludos
si la idea es hacer lo a travez de un formulario, pero como hago que lo que se capture aqui sea como usar el teclado y afecte a la aplicacion que este activa en el windows?
Responder Con Cita
  #4  
Antiguo 28-11-2007
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.049
Poder: 11
juanelo Va por buen camino
Cita:
Empezado por federicorl Ver Mensaje
si la idea es hacer lo a travez de un formulario, pero como hago que lo que se capture aqui sea como usar el teclado y afecte a la aplicacion que este activa en el windows?
Pues lo que se me ocurre es que uses mensajes a la aplicacion activa o que decidas, es decir, localizas la ventana a la cual quieres escribir y le mandas el mensaje correpondiente, para eso tienes que localiza la ventana que deseas (FindWindowEx) y luego mandarle mensajes (SendMessage,SendNotifyMessage).
Saludos
Responder Con Cita
  #5  
Antiguo 28-11-2007
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Poder: 0
federicorl Va por buen camino
ya vamos avanzando, falta que sea latinoamericano

ya estoy logrando algo con el notepad, gracias a ustedes amigos foristas

Procedure TFrm_Teclado.SendKeys(Keys: String);
Var
manejador : THandle;
h: HWND;
Begin
h := FindWindow('Notepad', nil);
if h = 0 then ShowMessage('No se encontro la Aplicacion')
else
begin
SetForegroundWindow(h);
If Keys = 'Enter' then
PostKeyEx32(VK_RETURN, [], False)
Else If Keys = 'Mayus' then
PostKeyEx32(VK_CAPITAL, [], False)
Else If Keys = 'Tab' then
PostKeyEx32(VK_TAB, [], False)
Else If Keys = 'Back' then
PostKeyEx32(VK_BACK, [], False)
Else If Keys = 'Deci' then
PostKeyEx32(VK_DECIMAL, [], False)
Else If Keys = 'Guion' then
PostKeyEx32(VK_SUBTRACT, [], False)
Else If Keys = 'Ñ' then
PostKeyEx32(164, [], False)
Else
PostKeyEx32(Ord(elcorrecto(Keys)), [], False); // simulamos la presión de la tecla Enviada
End
end;

ya envia los teclazos pulsados al notepad pero con el problema de que no he podido enviar ni la eñe ni la coma en el codigo anterior intente hasta enviar el ascii pero no funciono

este codigo lo encontre en otros hilos del foro y es el que estoy usando:

procedure TFrm_Teclado.PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
{************************************************************
* Procedure PostKeyEx32
*
* Parameters:
* key : virtual keycode of the key to send. For printable
* keys this is simply the ANSI code (Ord(character)).
* shift : state of the modifier keys. This is a set, so you
* can set several of these keys (shift, control, alt,
* mouse buttons) in tandem. The TShiftState type is
* declared in the Classes Unit.
* specialkey: normally this should be False. Set it to True to
* specify a key on the numeric keypad, for example.
* Description:
* Uses keybd_event to manufacture a series of key events matching
* the passed parameters. The events go to the control with focus.
* Note that for characters key is always the upper-case version of
* the character. Sending without any modifier keys will result in
* a lower-case character, sending it with [ssShift] will result
* in an upper-case character!
*Created: 17.7.98 by P. Below
************************************************************}
Type
TShiftKeyInfo = Record
shift: Byte;
vkey : Byte;
End;
byteset = Set of 0..7;
Const
shiftkeys: Array [1..3] of TShiftKeyInfo =
((shift: Ord(ssCtrl); vkey: VK_CONTROL ),
(shift: Ord(ssShift); vkey: VK_SHIFT ),
(shift: Ord(ssAlt); vkey: VK_MENU ));
Var
flag: DWORD;
bShift: ByteSet absolute shift;
i: Integer;
Begin
For i := 1 To 3 Do Begin
If shiftkeys[i].shift In bShift Then
keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
End; { For }
If specialkey Then
flag := KEYEVENTF_EXTENDEDKEY
Else
flag := 0;
keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 );
flag := flag or KEYEVENTF_KEYUP;
keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 );
For i := 3 DownTo 1 Do Begin
If shiftkeys[i].shift In bShift Then
keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), KEYEVENTF_KEYUP, 0);
End; { For }
End; { PostKeyEx32 }

alguna idea de como poder mandar la coma, la Ñ y demas caracteres de teclado latinoamericano?
Responder Con Cita
  #6  
Antiguo 28-11-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.872
Poder: 20
delphi.com.ar Va por buen camino
Supongo que no te sirve el teclado virtual de windows?
Se me ocurre algo, pero aqui no tengo una Pc para probarlo: create una ventana con el tecladito, pero que esta ventana no pueda recibir foco, entonces solo tienes que usar la funcion ketbd_event que enviara la tecla a donde se encuentre el foco.

PD: como curiosidad este mensaje lo escribi desde un teclado touch ;P

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 29-11-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Con tu permiso federicorl pongo el código planteado en formato más legible


Código Delphi [-]
Procedure TFrm_Teclado.SendKeys(Keys: String);
Var
manejador : THandle;
h: HWND;
Begin
h := FindWindow('Notepad', nil);
if h = 0 then ShowMessage('No se encontro la Aplicacion')
else
begin
SetForegroundWindow(h);
If Keys = 'Enter' then
PostKeyEx32(VK_RETURN, [], False)
Else If Keys = 'Mayus' then
PostKeyEx32(VK_CAPITAL, [], False)
Else If Keys = 'Tab' then
PostKeyEx32(VK_TAB, [], False)
Else If Keys = 'Back' then
PostKeyEx32(VK_BACK, [], False)
Else If Keys = 'Deci' then
PostKeyEx32(VK_DECIMAL, [], False)
Else If Keys = 'Guion' then
PostKeyEx32(VK_SUBTRACT, [], False)
Else If Keys = 'Ñ' then
PostKeyEx32(164, [], False)
Else
PostKeyEx32(Ord(elcorrecto(Keys)), [], False); // simulamos la presión de la tecla Enviada
End
end;

ya envia los teclazos pulsados al notepad pero con el problema de que no he podido enviar ni la eñe ni la coma en el codigo anterior intente hasta enviar el ascii pero no funciono

este codigo lo encontre en otros hilos del foro y es el que estoy usando:

procedure TFrm_Teclado.PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
{************************************************************
* Procedure PostKeyEx32
*
* Parameters:
* key : virtual keycode of the key to send. For printable
* keys this is simply the ANSI code (Ord(character)).
* shift : state of the modifier keys. This is a set, so you
* can set several of these keys (shift, control, alt,
* mouse buttons) in tandem. The TShiftState type is
* declared in the Classes Unit.
* specialkey: normally this should be False. Set it to True to
* specify a key on the numeric keypad, for example.
* Description:
* Uses keybd_event to manufacture a series of key events matching
* the passed parameters. The events go to the control with focus.
* Note that for characters key is always the upper-case version of
* the character. Sending without any modifier keys will result in
* a lower-case character, sending it with [ssShift] will result
* in an upper-case character!
*Created: 17.7.98 by P. Below
************************************************************}
Type
TShiftKeyInfo = Record
shift: Byte;
vkey : Byte;
End;
byteset = Set of 0..7;
Const
shiftkeys: Array [1..3] of TShiftKeyInfo =
((shift: Ord(ssCtrl); vkey: VK_CONTROL ),
(shift: Ord(ssShift); vkey: VK_SHIFT ),
(shift: Ord(ssAlt); vkey: VK_MENU ));
Var
flag: DWORD;
bShift: ByteSet absolute shift;
i: Integer;
Begin
For i := 1 To 3 Do Begin
If shiftkeys[i].shift In bShift Then
keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
End; { For }
If specialkey Then
flag := KEYEVENTF_EXTENDEDKEY
Else
flag := 0;
keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 );
flag := flag or KEYEVENTF_KEYUP;
keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 );
For i := 3 DownTo 1 Do Begin
If shiftkeys[i].shift In bShift Then
keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), KEYEVENTF_KEYUP, 0);
End; { For }
End; { PostKeyEx32 }


Comentarte que hay un par de teclados virtuales que si los añades al form que usas te funcionan perfectamente con los diferentes componentes de dicho form (memos, edits, etc) pero no he proado usandolos de un form a otro.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #8  
Antiguo 04-12-2007
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Poder: 0
federicorl Va por buen camino
cuales teclados virtuales

cuales son los teclados virtuales que mencionas, como puedo probarlos?

gracias Saludos
Responder Con Cita
  #9  
Antiguo 05-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
te recomiendo que busques en Torry o en delphipages, uno se que se llama virtualkeyboard muy vistoso, el otro no recuerdo su nombre, pero me gusta más, en casa se que los tengo y ambos que te comento son free, lo que no sabria decirte es hasta que versión de delphi son validos, buscalos, si no lo encuentras, pon otro mensaje y te digo como conseguirlos, o los pongo para que los bajes.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #10  
Antiguo 07-12-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 15
enecumene Va por buen camino
Hola Jose Luis Garcí, mira me interesa el virtual Keyboard, lo estuve buscando y no lo encuentro, por eso pregunto, existe la posibilidad de que puedas ponerlo aqui para bajarlo, digo, si no es ninguna molestia.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #11  
Antiguo 08-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Los dos componentes

Mando los dos teclados virtual, comentar que son free ambos y que el virtual queyboard es recomendable ver el ejemplo, en el otro no hay ejemplo pero es mucho más intuitivo de manejar, y permite 4 tipos de teclado, pero no soporta skins, probados en delphi 6 y en el trial de rad studio 2007 y funcionan.

el funcionamiento de keyboard es mas o meno de la siguiente manera
Código Delphi [-]

procedure tform1.Edit1.Onenter(Sender: TObject);     //componente que tiene la entrada o el foco si es editable.
begin
      keyboard1.LinkedControl:=edit1;
end;
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 14-12-2007 a las 21:16:37.
Responder Con Cita
  #12  
Antiguo 08-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Aqui os dejo el otro teclado, siento no haberlo enviado en el mensaje anterior pero no me lo permitia me ha paso algo muy estraño, no creo que tengan virus, pero no estaria de más que los escaneis, ya que son de un equipo que hace años tengo arrimado.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 14-12-2007 a las 21:16:37.
Responder Con Cita
  #13  
Antiguo 10-12-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 15
enecumene Va por buen camino
Muchissimas Gracias Jose Luis Garci los acabo de descargar, cualquier duda o problema luego te comentare. de nuevo gracias.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #14  
Antiguo 10-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Por si os interesa ya e puesto en mi WEB algunos componentes que con sidero fundamentales, entre ello los dos componentes de teclado, por si os interesa son:

keyboard
Virtualkeyboard
Clock
Chessbrd
Start2w
XPMenu
Fbarcode

Tengo varios mas que poner, con algo de tiempo los ire subiendo, comentar que todos son free, por lo menos cuando yo los baje, asi eran. Comprobada versiones en Delphi 6.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #15  
Antiguo 10-12-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 15
enecumene Va por buen camino
Excelente Amigo Jose! me encontre con un componente de creacion de codigo de barras que me interesó muchissimo y de mucha utilidada para mi igual que le XPMenu. de nuevo muchas gracias!!.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #16  
Antiguo 10-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Probastes los teclados, cual de los dos te parece más util, enecumene.

Dentro de un tiempo en cuanto los encuentre y pueda meterlos en la web, quiero poner los lectores de Scanner Twain, un componente ¿creo que se llama DBSearch?, para busquedas en la tabla, asociandola a uno de los campos, supergauge, que permite un gauge con la imagen segun el porcentaje, LG o LMPanel, un panel muy vistoso, QRbarcode, etc, así los componentes que considero muy utiles y son free, pero, todo eso lo tengo en un viejo equipo y cada vez que busco algo en el tengo que estar desmontandoo,montando y volver a desmontar.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #17  
Antiguo 10-12-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 15
enecumene Va por buen camino
Hola Jose, mira yo soy muy ignorantes en muchas cosas, pero va, que es un scanner Twain? y que es supergauge o gauge?. y los teclados todavia no los he probado, los probare esta noche en mi casa tranquilo pos el trabajo no me da tregua, mañana te comento cual escogo.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #18  
Antiguo 10-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Scaner de sobremesas o mano con soporte Twain, para escanear fotos, textos con un ocr, etc. Supergauge es el nombre se un componente gauge (una barra marcando el avance de un proceso) este componente en vez de mostrar una barra de un color muestra una imagen, que segun sea el proceso va apareciendo y al llegar al 100% muestra la imagen completa. te comento que son componente para mi inmpresindibles, muchos hace tiempo que no los encuentro en la red, los pondre en mi pagina para que los descarge el que le interece, pero me gustaria ver si el personal esta interezado (no cobro por ello)
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #19  
Antiguo 10-12-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 15
enecumene Va por buen camino
Cita:
Empezado por José Luis Garcí Ver Mensaje
muchos hace tiempo que no los encuentro en la red, los pondre en mi pagina para que los descarge el que le interece, pero me gustaria ver si el personal esta interezado (no cobro por ello)
Claro que estoy interesados en esos componentes que mencionas, pero al menos no aceptas un par de vinos en la taberna?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #20  
Antiguo 11-12-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.337
Poder: 16
José Luis Garcí Va por buen camino
Muchas gracias pero un refresco no más, que el alcohol me sienta muy mal.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TouchScreen con delphi!! bernabe Varios 3 27-07-2007 18:24:03
Pantalla Touchscreen chavetaz Varios 2 15-05-2007 20:27:04
3D Desktop TouchScreen Onti La Taberna 2 06-04-2007 12:11:34
USB Teclado en Red Hat 9 nicocer Linux 0 05-07-2004 22:04:56
delphi y touchscreen cesarjbf Varios 3 30-03-2004 15:18:58


La franja horaria es GMT +2. Ahora son las 23:52:04.


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