FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
key de CTRL+V y de CTRl+C
Tengo un edit con el siguiente código en el evento OnKeyPress para que admita solo números decimales:
Esto me impide copiar y/o pegar en el edit, pero necesito poder hacerlo. He pensado poner una condición algo así: If (key = 'VK_KeyDeCtrl+V) or (key = 'VK_KeyDeCtrl+C) then ....controlar valor pegado else ... control entrada solo números ¿ key de CTRL+V y de CTRl+C ?, o algún sitio donde pueda buscarlas. Gracias. |
#2
|
||||
|
||||
El problema del OnKeyPress es que no te da información extra de teclas de CTRL, ALT,... como hacen por ejemplo el OnKeyDown/OnKeyUp.
La primera opción es ver si puedes cambiar el código a uno de estos eventos. Si no puedes, la otra opción es utilizar la API para preguntar cómo está en un momento dado una determinada tecla. GetKeyState o GetKeyboardState te pueden servir. Para ver cómo se usan puedes revisar este post de Roman.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Yo me andaría con ojo, ya que mucha gente (por ejemplo, yo ) utiliza las combinaciones [Ctrl]+[Ins] y [Mays]+[Ins] para copiar y pegar (aparte de [Ctrl]+[Supr] para cortar, etc). Creo recordar que también se puede cambiar en la configuración del teclado qué teclas utilizar para estas operaciones.
¿No hay alguna forma de obtener (por ejemplo, del registro) cómo están configuradas estas combinaciones? |
#4
|
||||
|
||||
Creo que estamos confundiendo las cosas, cuando copiamos o pegamos, ya sea usando el menú o utilizando alguna combinación de teclas, lo que llega al edit son los mensajes WM_COPY y WM_PASTE. En ningún momento llegan al edit las pulsaciones de esas teclas porque se procesan por windows mucho antes.
Para controlar cuando, y como, se copia y se pega lo que tenemos que hacer es interceptar los mensajes WM_COPY y WM_PASTE. Se puede hacer de varias maneras, pero ahora mismo se me ocurre que lo podemos hacer sustituyendo el WndProc del edit. Algo así:
|
#5
|
||||
|
||||
Cita:
// Saludos |
#6
|
|||
|
|||
Gracias a todos, voy a ponerme con lo que me indicais.
Un saludo. |
#7
|
||||
|
||||
Cita:
|
#8
|
|||
|
|||
Lo he solucionado a través del evento OnChange del edit. Controlo que el edit solo pueda admitir números con una coma, y el edit permite copiar y pegar.
Gracias. Un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Historia de Ctrl+Z | marcoszorrilla | Noticias | 0 | 30-09-2006 21:15:28 |
Ctrl + Alt + Del | marcoszorrilla | Noticias | 6 | 25-07-2006 07:23:11 |
Desactivar Ctrl-Del | IVAND | Varios | 1 | 12-01-2006 02:42:45 |
desactivar CTRL+ALT+SUP | User_baja1 | Varios | 1 | 03-05-2005 19:26:14 |
Ctrl+alt+supr | karocs | Varios | 3 | 28-12-2004 20:46:37 |
|