Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2010
sac sac is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
sac Va por buen camino
reflejo de un memo en otro

Existe alguna manera de que lo que haga en un memo, cada acción se pueda copiar repetir en otro memo como si fuera un reflejo? (avanzar entre líneas, ir al principio, fin, subir bajar etc?)
Responder Con Cita
  #2  
Antiguo 15-07-2010
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.293
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
En principio sí, pero no hay nada automático que lo haga.
¿Qué acciones desea "replicar"?

Deberás utilizar eventos de OnChange, para detectar cambios en el texto, y alguno de teclas y de Mouse (OnKeyDown y OnMouseDown) para los cambios provocados por el teclado y el Mouse, que no provoquen cambios en el texto (por ejemplo seleccionar una parte).

Deberías explicitar mejor qué acciones quieres "reflejar" en el segundo.
__________________
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 15-07-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola sac, como te dice Neftalí deberías explicar un poco mas. A mi se me ocurre hacerlo utilizando el evento OnKeyUp:

Código Delphi [-]
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 Memo2.Lines.Assign(Memo1.Lines);
 Memo2.SelStart := Memo1.SelStart;
 Memo2.Perform(EM_SCROLLCARET, 0, 0);
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 16-07-2010
sac sac is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
sac Va por buen camino
Les explico a los dos. Es algo muy manual y casero pero como no hay una opción en memos o richedit para darle el efecto sombra a las fuentes lo que hago es tratar de crear un memo transparente que contenga alguna fuente elegida y un segundo memo corrido unos pixeles mas abajo y mas a la derecha que copia la misma font y x defecto clara o oscura dependiendo cual se eligió en el memo 1 para contrastar pero el tema es que cuando voy bajando o subiendo leyendo el memo1 tendría que hacer lo mismo en el memo2.

Perdón me explico? en sintesis superponer dos memos y que el segundo hiciera lo mismo que el primero.

Espero alguna respuesta Gracias
Responder Con Cita
  #5  
Antiguo 16-07-2010
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.293
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
Ok, ahora he entendido lo que quieres hacer y creo que te va a dar más problemas que otra cosa, hacerlo de esta manera.

Yo optaría tal vez por interceptar el redibujado de un Memo, pero el tema de sincronizar dos, lo veo complicado por la infinidad de cosas que vas a tener que controlar; El propio cursor, selección de porciones de texto, cortar/pegar, escritura de texto,...

Algunas de estas operaciones no se si te van a responder bien (tiempo aceptable), cuando el texto sea un poco grande...
__________________
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
  #6  
Antiguo 16-07-2010
sac sac is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
sac Va por buen camino
Lo bueno deésto es que no tengo que cortar y pegar, ni seleccionar... Solamente es leer y rara vez escribir o borrar... además el texto no sería muy largo en todos los casos.

Qué te parece? Ésto ayudaría? de todas maneras como le indico al segundo la acción del cursor en el primer memo o si estoy subiendo o bajando cuando leo

Y que es eso del redibujado?
Responder Con Cita
  #7  
Antiguo 16-07-2010
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.293
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
Cita:
Empezado por sac Ver Mensaje
Qué te parece? Ésto ayudaría? de todas maneras como le indico al segundo la acción del cursor en el primer memo o si estoy subiendo o bajando cuando leo

Y que es eso del redibujado?
EL problema de lo primero es que aunque no lo vayas a hacer, puede hacerse, de forma que si no lo controlas, si en algun momento haces CTRL+X + CTRL+V aquello va a parecer "una traca de feria", como se suele decir.

La acción del cursor tendías que controlarla usando las propiedades SetLength, SelStart,... El problema es cuando detectar el movimiento...
El tema de cuando subes y bajas líneas también es complejo y posíblemente más cuando tengas barra de scroll vertical y/o horizontal.

Son muchas cosas a controlar y de manera muy fina, porque no te puede descuadrar ni un sólo caracter, de otra forma la lectura sería imposible.

Con el redibujado, me refiero, a que algunas de estas operaciones sólo vas a poder controlarlas haciendo algo como esto:

Código Delphi [-]
Memo2.Text := Memo1.Text

Es decir, asignando TODO (o parte) del primer memo al segundo y eso cuesta de hacer; Aunque sea muy poco es posible que se vean parpadeos o efectos al escribir el texto (a eso me refiero con el "redibujado").

No e quiero desanimar, lo mejor es que hagas pruebas, pero hacerlo del modo que lo planteas, lo veo muy complejo, con muchas cosas a controlas y con "poca fiabilidad"; Creo que no es la forma correcta de enfocarlo (pero es una opinión personal).

Creo que sería más sencillo, como te he comentado, interceptar el procedimiento/mensaje de pintado (Paint() o WM_PAINT) e intentar implementar el pintado con sombra.
__________________
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
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
Campo memo tabla escribirlo en componente Memo Sayuri Conexión con bases de datos 2 18-08-2005 13:58:01
pasar palabras completas de un memo a otro Cosgaya Conexión con bases de datos 1 05-06-2005 15:41:07
Exportar e importar campos memo a otro gdb eliasterrero Firebird e Interbase 0 15-03-2005 13:27:07
Rave: un memo abajo de otro eltano Impresión 0 17-06-2004 20:10:39
Como Reflejo Un If De Select En Una Grilla cmena SQL 8 24-05-2004 15:34:11


La franja horaria es GMT +2. Ahora son las 12:27:24.


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