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 12-10-2008
Shysu Shysu is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
Shysu Va por buen camino
Question Ayuda para escribir Símbolos Lógicos!!!

Hola, tengo que hacer mi TFC en Delphi y ando bastante perdida, ya que llevo muchos años sin programar.

El caso es que la primera parte de mi TFC es un editor de fórmulas lógicas y se me ocurrió usar un RichEdit para que allí el usuario pueda escribirlas. El problema está a la hora de escribir los símbolos lógicos porque solamente se pueden escribir en el tipo de letra "Symbol". Tengo creados unos botones, cada uno para cada símbolo lógico (en el Caption de cada botón si que se ve correctamente el símbolo lógico), de manera que tú escribes una letra en el Richedit y cuando pulsas uno de los botones te añade el simbolo lógico y te lo deja preparado para seguir escribiendo letras en el tipo de letra que tenia. Tengo puesto el siguiente código en el evento OnClick de cada botón y no funciona (juro que en mi antiguo PC funcionó, pero ahora en el nuevo con Windows Vista no hay manera):

RichEdit1.SelAttributes.Name:='Symbol';
RichEdit1.Seltext:=RichEdit1.Seltext+'$'; /*Este simbolo al escribirlo en "Symbol" te escribe el símbolo "Existe" */
RichEdit1.SelAttributes.Name:='Courier New';
RichEdit1.SetFocus;

El caso es que cuando pulsas el botón no llega a cambiar el tipo de letra y claro te escribe el '$' en lugar del símbolo "Existe".

No se me ocurre otra manera de poder hacer el editor, a lo mejor existe otro componente que me facilitaría el tema de los símbolos lógicos, pero lo desconozco porque ya os digo que hace mucho que no programo nada y me he quedado un poco "obsoleta", jeje.

Por favor si a alguien se le ocurre algo que me lo diga, porque no paso de esta primera parte y claro no avanzo nada (y eso que esta primera parte es la fácil, jeje).

Un saludo y gracias de antemano
Su
Responder Con Cita
  #2  
Antiguo 12-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, tengo windows xp y tu codigo me funcionaba...¿has probado cambiando Richedit1.Font.Name segun lo necesites? Tambien puedes mirar si los nombres son exactamente esos y si asi estan registrados en Windows Vista...no se me ocurre nada mas de momento

Última edición por coso fecha: 12-10-2008 a las 22:58:46.
Responder Con Cita
  #3  
Antiguo 13-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Si coso dice que funciona, funcionará, pero teóricamente diría que no:
Código Delphi [-]
RichEdit1.Seltext:=RichEdit1.Seltext+'$';
 /*Este simbolo al escribirlo en "Symbol" te escribe el símbolo "Existe" */
RichEdit1.SelAttributes.Name:='Symbol';
RichEdit1.Sellength := 0;
RichEdit1.SelAttributes.Name:='Courier New';
RichEdit1.SetFocus;

Digo que teóricamente me suena mejor así:
- selecciono el texto
- cambio el tipo de letra
- deselecciono el texto
- restauro el tipo de letra.

Quizás después del SelLength habría que poner selStart := length(richedit1.lines.text) para que se desplace hasta el final el cursor... no sé.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 13-10-2008 a las 12:31:51. Razón: quitar scroll horizontal
Responder Con Cita
  #4  
Antiguo 13-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
juas gracias pero...no no, me funcionaba su codigo en Windows XP, ni idea de en Windows Vista
Responder Con Cita
  #5  
Antiguo 13-10-2008
Shysu Shysu is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
Shysu Va por buen camino
Muchas gracias a los dos por contestar, voy a probar lo que me habeís dicho a ver si me funciona. Os diré algo, vale??

Un saludo
Su
Responder Con Cita
  #6  
Antiguo 13-10-2008
Shysu Shysu is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
Shysu Va por buen camino
Hola de nuevo, casi he conseguido que me funcione con el código que tenía. Bueno en realidad también debía funcionar antes, pero ahora me he dado cuenta de que la primera vez que se crea y activa el formulario (es el tercer formulario de la aplicación) cuando pincho en el botón del "Existe", me escribe el símbolo "$". Pero si lo selecciono de manera que se queda marcado en negro y vuelvo a dar al botón, pues me cambia el que había escrito y me escribe uno nuevo pero ya correctamente en el tipo de letra Symbol.
Si cierro esa ventana, vuelvo al formulario anterior y la vuelvo a abrir, ya si que me funciona bien desde el principio. Es como si el RichEdit ya se quedase bien. Probablemente necesite poner algo en el FormActivate o en el FormCreate. Ahora mismo tengo puesto lo siguiente:

procedure TForm3.FormActivate(Sender: TObject);
begin
RichEdit1.SetFocus;
RichEdit1.Text:='';
RichEdit2.Text:='';
RichEdit1.SelAttributes.Name:='Symbol';
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
RichEdit1.Text:='';
RichEdit2.Text:='';
RichEdit1.SelAttributes.Name:='Symbol';
end;

¿Creeis que está bien así? ¿Y por qué no cambia bien el tipo de letra la primera vez que se crea el formulario?

Gracias
Su
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
Campos Lógicos en Firebird KAYO Conexión con bases de datos 10 01-09-2008 23:41:27
Necesito crear un permiso para escribir pero no para leer federiconqn21 Conexión con bases de datos 5 07-07-2006 19:13:47
Bdbrid con campos logicos federicorl Conexión con bases de datos 2 17-05-2006 23:14:41
Campos lógicos en Paradox Acker Conexión con bases de datos 4 28-08-2005 12:41:56
Ayuda con el Inno SEtUp5.¿Cómo escribir en un fichero?? VRO Varios 3 17-01-2005 08:23:49


La franja horaria es GMT +2. Ahora son las 21:44:34.


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