Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 06-04-2005
ander ander is offline
Miembro
 
Registrado: may 2003
Posts: 48
ander Va por buen camino
Teclado para intouch

He generado un teclado que se activa cuando se ha de cambiar algun dato en una pantalla tactil.Cuando pulso un boton hago que me escriba en el text del Tedit las letras asignadas a los botones , pero me he dado cuenta que voy sumando los carcteres y por este sistema no puedo intercalar o borrar como si lo hiciera desde un teclado normal.¿Como podria usar botones y un tedit y se comportase como un teclado?
Saludos
Responder Con Cita
  #2  
Antiguo 06-04-2005
Avatar de Neftali
Neftali Neftali is offline
Aporreador de teclados
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 12.605
Neftali Va por buen camino
Si colocas un form con cuatro botones (SpeedButton por el tema del foco), uno para la tecla (debería ser igual para todas las teclas, pero cambiando el caracter), uno para borrar, uno para la flecha izquierda y otro para la derecha, con algo así debería bastar:

Código Delphi [-]
 procedure TForm1.BotonTeclaClick(Sender: TObject);
 var
   i:Integer;
   ch:Char;
   pos:Integer;
   Str1, Str2:String;
 begin
   // Generar la tecla
   Randomize;
   i := Trunc(Random(25)) + 65;
   ch := Char(i);
   i := Edit1.SelStart;
   // Calcular la posion y los strings parciales
   pos := Edit1.SelStart;
   Str1 := Copy(Edit1.Text, 1, pos);
   Str2 := Copy(Edit1.Text, pos + 1, Length(Edit1.Text));
   // Añadir la nueva
   Edit1.Text := Str1 + ch + Str2;
   Edit1.SelStart := i + 1;
 end;
 
 procedure TForm1.BotonBorrarClick(Sender: TObject);
 var
   pos:Integer;
   Str1, Str2:String;
   i:Integer;
 begin
   // posicion actual del cursor
   i := Edit1.SelStart;
   // Calcular la posion y los strings parciales
   pos := Edit1.SelStart;
   Str1 := Copy(Edit1.Text, 1, pos - 1);
   Str2 := Copy(Edit1.Text, pos + 1, Length(Edit1.Text));
   // Añadir la nueva
   Edit1.Text := Str1 + Str2;
   Edit1.SelStart := i - 1;
 end;
 
 procedure TForm1.BotonFlechaIzquierdaClick(Sender: TObject);
 begin
   // Mover el cursor
   Edit1.SelStart := Edit1.SelStart - 1;
 end;
 
 procedure TForm1.BotonFlechaDerechaClick(Sender: TObject);
 begin
   // Mover el cursor
   Edit1.SelStart := Edit1.SelStart + 1;
 end;
__________________
Neftalí -web - MyDropBox-
Guía de estilo, Guía alternativa, TAG's.
*Añade tu foto al Club*

(UPDATE) TrackInfo v.1.7b

Contactar con el Clubdelphi


P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 08-04-2005
ander ander is offline
Miembro
 
Registrado: may 2003
Posts: 48
ander Va por buen camino
Con esto me vale,muchas gracias Neftali
Responder Con Cita
Respuesta


Herramientas
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


La franja horaria es GMT +2. Ahora son las 01:27:35.


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