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 15-03-2023
javiersp javiersp is offline
Registrado
 
Registrado: mar 2023
Posts: 1
Poder: 0
javiersp Va por buen camino
Quitar Scrollbars de un TControlList

Hola,
Estoy usando el nuevo componente TControlList, me muevo por la lista usando gestos y me sobran las barras de desplazamiento, además de que no quedan estéticas en la app. Desde el componente no hay la opción de eliminarlas, he intentado con mensajes de windows pero tampoco desaparece.
A ver si alguien ya lo ha conseguido antes.

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 15-03-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Con esto, lo que no sé es en qué evento es más conveniente ponerlo:
Código Delphi [-]
  ShowScrollBar( (sender as TControlList).Handle, SB_VERT, false );
Responder Con Cita
  #3  
Antiguo 15-03-2023
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.275
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
Se me ocurren varias forma de hacerlo o al menos de probar a ver si funciona.

1) La primera es derivar el componente y reescribir alguno de los procedimientos de TCustomControlList, que es de quien deriva TControlList.
Probaría con el método Paint o alguno similar.

Código Delphi [-]
    procedure Paint; override;

También puedes interceptar alguno de los mensajes de pintado, pero creo que es lo mismo y quedará más claro con los procedimientos.

Código Delphi [-]
   ...
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
    procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
   ...

2) La segunda opción es interceptar los métodos del componente, por ejemplo, esta prueba rápida parece que funciona.

Código Delphi [-]
...
type
  TControlList = class(VCL.ControlList.TControlList)
  protected
    procedure WMWindowPosChanged(var Message: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED;
  end;

...


procedure TControlList.WMWindowPosChanged(var Message: TWMWindowPosChanged);
begin
  ShowScrollBar(Handle, SB_VERT, False);
end;

Con esto he comprobado que el scroll vertical no aparece, aunque tal vez esté interceptando "demasiados" mensajes.

3) Es posible que se pueda hacer capturando mensajes utilizando un componente TApplicationEvents en el formulario. filtrando para que los mensajes sean sólo del control que te interesa y sólo los mensajes que te interesan. Algo así:

Código Delphi [-]
procedure TForm3.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
  if Msg.hwnd <> ControlList1.Handle then   // sólo del ControList
    Exit;
  if (Msg.message = WM_HSCROLL) or (Msg.message = WM_VSCROLL) then   // sólo mensajes de las barras de desplazamiento
  ...

4) Por último, implementando los eventos del control/form, puedes probar directamente a ocultarlas, usando esto:

Código Delphi [-]
    ShowScrollBar(ControlList1.Handle, SB_HORZ, False);
    ShowScrollBar(ControlList1.Handle, SB_VERT, False);
__________________
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
Scrollbars en un TPanel acertij022 Varios 2 19-02-2009 14:35:32
Quitar scrollbars en un dbgrid sur-se OOP 3 18-11-2008 19:02:13
dbgrid y scrollbars Rabata Conexión con bases de datos 3 25-07-2005 11:41:21
scrollbars de un treeview kakesoft OOP 0 06-04-2005 02:35:52
scrollbars pablo Gráficos 2 28-12-2004 13:18:57


La franja horaria es GMT +2. Ahora son las 17:25:56.


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