Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Avanzar y Retroceder porpárrafos (https://www.clubdelphi.com/foros/showthread.php?t=68914)

sac 14-07-2010 20:53:17

Avanzar y Retroceder porpárrafos
 
Mi problema es que quisiera que apretando algún botón el memo avance de a párrafos hacia abajo y con otro en sentido inverso. y no como es común avanzar o retroceder por línea o con los botones de Av. y re. de página
No sé qué código puedo usar.
Alguna idea?

Neftali [Germán.Estévez] 15-07-2010 13:23:18

Con este código puedes avanzar (scroll) una serie de líneas (en este caso 100).

Código Delphi [-]
var
  ScrollMessage:TWMVScroll;
  i:Integer;
begin
  ScrollMessage.Msg:=WM_VScroll;
  for i := 0 to 100 do begin
    ScrollMessage.ScrollCode:=sb_LineDown;
    ScrollMessage.Pos:=0;
    Memo1.Dispatch(ScrollMessage) ;
  end;

Puedes cambiar el tipo de scroll por SB_LINEUP para realizarlo hacia arriba.

Con algunas pequeñas modificaciones, creo que puedes conseguir que el scroll sea por párrafos, por ejemplo, buscando el caracter de Fin_de_linea o el Carry_return.

sac 15-07-2010 13:48:19

Neftali primeramente gracias por la respuesta estoy intentando hacer algo con el código que me pasaste. Explicame cómo identificarías ese "caracter de fin de línea" o el Carry_return. Nunca los use.
Gracias de nuevo

Neftali [Germán.Estévez] 15-07-2010 14:32:37

El CR y LF corresponden a #13 y #10.

sac 16-07-2010 15:37:46

perdón la ignorancia Neftalí pero que sería #13 y#10?

Neftali [Germán.Estévez] 16-07-2010 16:04:00

El #10 es el LF (Salto de línea) y el #13 el CR (Retorno de carro); Normalmente vienen en el siguiente orden: CR+LF (#13#10)

Si escribes en un Memo y luego vuelcas el contenido a un String:

Código Delphi [-]
  Str := Memo1.Lines.Text;

Verás que el contenido es algo así:

Código:

'Lunes'#$D#$A'Martes'#$D#$A'Miercoles'#$D#$A
El #$D es el #13 (en Hexadecimal) y el #$A el #10


La franja horaria es GMT +2. Ahora son las 22:31:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi