2010-12-01 19 views
9

¿Delphi contiene un componente que permite el desplazamiento automático de texto cargado desde db, como en los sitios de noticias?memo de desplazamiento automático en delphi

Tt es para una aplicación delphi 7 y requiere un desplazamiento vertical.

Respuesta

5

Posiblemente, para ahorrar algo de dinero se podría adaptar esta a desplazarse por una DBMemo:

EchoMemo.Lines.Add('A Line of text or more'); 
EchoMemo.SelStart := EchoMemo.GetTextLen; 
EchoMemo.SelLength := 0; 
EchoMemo.ScrollBy(0, EchoMemo.Lines.Count); 
EchoMemo.Refresh; 

utilizo para una pantalla de registro.

29

¡Para una tarea tan simple, no necesita comprar un componente comercial! Todo lo que necesita hacer es enviar un mensaje de EM_LINESCROLL a que el control de notas, para que sea desplazarse hasta la última línea:

procedure ScrollToLastLine(Memo: TMemo); 
begin 
    SendMessage(Memo.Handle, EM_LINESCROLL, 0,Memo.Lines.Count); 
end; 

Si la nota es de sólo lectura a los usuarios y se actualiza automáticamente por la aplicación, puede poner una llamada al procedimiento anterior en su controlador de eventos OnChange, de modo que cada vez que se cambie el texto dentro de la nota, se desplace automáticamente a la última línea.

+0

Hmm, ¿Más corto que el mío, Memo_Scroll Golf a alguien? :) – Despatcher

+0

este desplazamiento es muy rápido. ¿Cómo lo desaceleras? – none

+0

@none, ¿qué quiere decir con ralentizarlo? ¿Vas a hacer un efecto visual de desplazamiento? – vcldeveloper

0

También puede utilizar Memo.GoToTextEnd; cuando sea necesario, por ejemplo dentro de un evento onchange. No es un efecto de desplazamiento automático adecuado, pero puede ser útil en situaciones similares.

Cuestiones relacionadas