PDA

Ver la Versión Completa : Redimensionar RichEdit para ocultar los scrollbars


dabas
08-09-2007, 00:54:38
hola amigos

tengo un RichEdit dentro de un Panel (RichEdit tiene align=alClient), cuando escribo en el RichEdit aparecen las scrollbars si el texto no cabe (WordWrap = false), tanto vertical como horizontal.

tengo un peqeño fragmento de codigo que muestra un mensaje si las scrolbars estan visibles:

procedure TForm1.RichEdit1ResizeRequest(Sender: TObject; Rect: TRect);
begin
if (GetWindowlong(RichEdit1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then
ShowMessage('Vertical scrollbar is visible!');

if (GetWindowlong(RichEdit1.Handle, GWL_STYLE) and WS_HSCROLL) <> 0 then
ShowMessage('Horizontal scrollbar is visible!');
end;

teniendo esto,
¿cuanto tengo que redimensionar el Panel para que desaparezcan las scrollbars?
puede que sabiendo la longitud del scroll,
¿y como se puede saber esa longitud?

gracias por vuestra ayuda

JXJ
08-09-2007, 05:52:33
selecciona el richedit.
en el inspector de objetos.

en las propiedades. busca la propiedad. showscrollbars.
ahi estan las opciones de mostrar ambas, solo la barra horizontal
o solo la vertical.

asi no tienes que preocuparte de aumentar el area del panel.
por que asi no se muestran las scrollbars. que no quieres que se muestren.

dabas
08-09-2007, 13:41:08
ocultar las scrolbaras desde el editor de propiedades no me vale
porque quiero que el texto sea siempre visible. dentro de unos limites claro.
si el contenido del RichEdit no cabe en la pantalla se mostraran las barritas.

salu2

egostar
08-09-2007, 16:20:34
Bueno, yo he hecho esto que modifica la dimensión del RichEdit pero en lo alto, en lo ancho no lo he requerido, pero me imagino que si podría haber algo.

Usa el evento OnReziseRequest, pon este código y mira el comportamiento del richedit.


procedure TForm1.RichEdit1ResizeRequest(Sender: TObject; Rect: TRect);
begin
(Sender as TRichEdit).BoundsRect := Rect;
end;


Salud OS

dabas
08-09-2007, 23:07:42
Bueno, yo he hecho esto que modifica la dimensión del RichEdit pero en lo alto, en lo ancho no lo he requerido, pero me imagino que si podría haber algo.

Usa el evento OnReziseRequest, pon este código y mira el comportamiento del richedit.


procedure TForm1.RichEdit1ResizeRequest(Sender: TObject; Rect: TRect);
begin
(Sender as TRichEdit).BoundsRect := Rect;
end;


Salud OS


Si, esto ya lo vi en algun sitio. Puede valer para cambiar el alto pero el ancho no se modifica.

Aun asi queria cambiar el tamaño del Panel no del RichEdit