Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2006
Geta Geta is offline
Miembro
 
Registrado: ago 2004
Posts: 27
Poder: 0
Geta Va por buen camino
Rutina de input con texto Canvas...

Mi pregunta seria como se podria hacer una especie de input pero utilizando las funciones de canvas para imprimir texto, como TextOut, etc.

Más o menos me he creado uno usando el evento Keyup del Form y según la tecla pulsada pues imprimir dicho caracter, pero con esta forma no puedo introducir ningún simbolo como @ o ? y querria que si se puediera.

Gracias de antemano.

Saludos
Responder Con Cita
  #2  
Antiguo 10-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Antes de nada, bienvenido y te recomiendo que revises la Guía de estilo de los foros.

La verdad es que no te has explicado muy bien; ¿Dónde estás haciendo ésto? ¿en un componente? ¿Qué tipo de componente?
¿Puedes poner algo de código, para que nos ayude a comprender lo que estás haciendo?
¿Cuando hablas de imprimir te refieres a qué exactamente -porque imprimir es mardar algo a la impresora-?
__________________
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.
Responder Con Cita
  #3  
Antiguo 10-01-2006
Geta Geta is offline
Miembro
 
Registrado: ago 2004
Posts: 27
Poder: 0
Geta Va por buen camino
Gracias, por la bienvenida. Si que eché un ojo a la guia de estilo.

Puntualizaré para que podais entender mi problema.

En una aplicación, quiero recoger mediante teclado, usando una rutina de input creada por mi, una frase que de el usuario, pero quiero que la rutina de input use los texto del canvas de mi form, es decir, usar texto 'dibujado' en el canvas para crear el input.

Ahora bien, lo tengo medio hecho, en el evento keyup del form. Pero necesito que esta rutina me admita simbolos tales como " @ $ y demás, ya que uso el parámetro key para dibujar la letra correspondiente a la tecla pulsada.

Gracias.
Responder Con Cita
  #4  
Antiguo 11-01-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No entiendo muy bien porqué te empeñas en utilizar el "canvas" del formulario a modo de "entrada" del usuario. Supongo que tienes tus razones. Creo que costaría más trabajo adaptar el "canvas" para utilizarlo como un "TEdit" que lo contrario, esto es, adaptar un "TEdit" para que se parezca al "Canvas".

Puedes hacer que el "TEdit" sea del mismo color que el formulario. Puedes quitarle el borde, de forma que ni siquiera se aprecie el "TEdit" y este quede confundido con el formulario; incluso puedes ocultar el "caret" del "TEdit" para que parezca que está escribiéndose en el propio formulario.

De ese modo no tendrás problemas con los caracteres que mencionas, además de que podrás aprovechar lo que puede ofrecerte el componente "TEdit". Pero, fíjate lo que dice el autor del código que enlazo más arriba sobre ocultar el "caret" del "TEdit" al usuario:

Cita:
Of course this is an excellent way to confuse the user, since there will be no indication where the focus is anymore when the user tabs into one of the edits...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 11-01-2006
Geta Geta is offline
Miembro
 
Registrado: ago 2004
Posts: 27
Poder: 0
Geta Va por buen camino
Cita:
Empezado por dec
Hola,

No entiendo muy bien porqué te empeñas en utilizar el "canvas" del formulario a modo de "entrada" del usuario. Supongo que tienes tus razones. Creo que costaría más trabajo adaptar el "canvas" para utilizarlo como un "TEdit" que lo contrario, esto es, adaptar un "TEdit" para que se parezca al "Canvas".

Puedes hacer que el "TEdit" sea del mismo color que el formulario. Puedes quitarle el borde, de forma que ni siquiera se aprecie el "TEdit" y este quede confundido con el formulario; incluso puedes ocultar el "caret" del "TEdit" para que parezca que está escribiéndose en el propio formulario.

De ese modo no tendrás problemas con los caracteres que mencionas, además de que podrás aprovechar lo que puede ofrecerte el componente "TEdit". Pero, fíjate lo que dice el autor del código que enlazo más arriba sobre ocultar el "caret" del "TEdit" al usuario:
No si esta idea ya se me pasó por la cabeza e incluso empecé a probarla, pero no conseguia los resultados que buscaba.

Pongo en antecedentes. Estoy intentando emular los antiguos juegos spectrum que eran aventuras de texto que las ordenes se introducian por teclado. Entonces, además de poder crear un input con canvas quiero que la frase introducida haga 'scroll' hacia arriba cuando el ordenador responda a la frase introducida, y eso usando un Tedit lo veia más dificil.

Pero la verdad es que ayer ya avance bastante y no está quedando mal.
Responder Con Cita
  #6  
Antiguo 11-01-2006
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 21
Ricardojosep Va por buen camino
Hola Geta!
No se cual es tu problema, creo que es, cuando tu quieres dibujar el simbolo '@' por ejemplo.
Bueno, esta es una forma de hacerlo:

en el evento OnKeyDown(....) de la Form pone este codigo
Código Delphi [-]
if ( (GetKeyState(VK_CONTROL) and 128)=128 ) and
     ( (GetKeyState(ord('2'))   and 128)=128 )
    then
      Form1.Canvas.TextOut(20,20,'@');

Y listo, eso es para dibujar un '@' en la Form.
Observa que tienes que presionar Ctrl + 2 para dibujar el simbolo '@'.
Creo que eso es lo que necesitas, en caso contrario disculpa.
Cabe señalar que el codigo lo saque de Trucomania. El truco es el 178.
para ingresar a Trucomania hace Click Aqui

La parte del Scroll lo puedes ver en el truco 58 de Trucomani.

Suerte!!! Hasta Pronto.
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #7  
Antiguo 12-01-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Geta
(...) y eso usando un Tedit lo veia más dificil.
Bueno, quien dice un "TEdit" dice un "TMemo"... ¿No?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



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
Insertar texto transparente con canvas Jan_polero Gráficos 3 23-08-2012 17:44:15
copiar texto sin formato en un TRichEdit!!!! aranel OOP 1 20-12-2005 19:24:17
Usar texto en el Canvas iotegi Varios 2 27-07-2005 16:37:08
Cual es la Forma Correcta de Guardar Texto en un IbDataset con TcpServer???? AGAG4 Varios 0 10-12-2004 22:14:41
como justifico un texto en QrdbRichText de Qreport nvalerio Varios 5 30-04-2004 21:12:30


La franja horaria es GMT +2. Ahora son las 23:39:29.


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
Copyright 1996-2007 Club Delphi