Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tabs como FireFox (https://www.clubdelphi.com/foros/showthread.php?t=42280)

Troffed 10-04-2007 19:19:24

Tabs como FireFox
 
Hola, estoy intentando hacer un interfaz similar a firefox (salvando las distancias) en el aspecto de las pestañas o tabs.

Por un lado que se vayan añadiendo tabs según van haciendo falta, utilizando frames para ello, hasta aquí de momento no hay problema.

Pero quiero que en el tab aparezca un botón de cerrar, he estado mirando en el foro y hay un hilo sobre el tema pero no he visto como finalmente se resolvió. He estado mirando los componentes de TMS pero debo ser muy torpe porque no he visto como hacerlo. Con la JVCL está el TJvTabBar pero no tiene la apariencia que busco y además no termino de ver claro como funcionar con pagelist.

¿Conocéis algún componente que sea similar a las tabs de firefox? o ¿Como puedo poner un pequeño botón en cada tabsheet para cerrarla?

poliburro 10-04-2007 19:25:06

]Por que no te das una vuelta por torry.net?, es un excelente site dedicado a delphi

Troffed 10-04-2007 19:39:19

Lo conozco, pero lo que he visto no termina de ser exactamente lo que busco.

Gracias.

droguerman 11-04-2007 04:23:47

asignas a tu PageControl la propiedad OwnerDraw := true y luego pones un código parecido a este en el evento onDrawTab

Código Delphi [-]
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  r, m : TRect;
begin
  CopyRect(r, Rect);
  CopyRect(m, Rect);

  //para el botón
  r.Left := R.Right-GetSystemMetrics(SM_CXMENUSIZE);
  with Control.Canvas do
  begin
      //escribe el texto
      DrawText(Handle, PChar(PageControl1.Pages[tabIndex].Caption ),
               -1, m, DT_LEFT );
      //dibuja el botón
      DrawFrameControl(Control.Canvas.Handle, r, DFC_CAPTION    ,
                       DFCS_CAPTIONCLOSE     );

  end;
end;


ahora lo que tienes que hacer es manejar el evento onKeyUp

Troffed 11-04-2007 10:33:05

Muchas gracias, voy a intentarlo por ese camino, a ver si puedo en lugar de pintar el botón estandar de cerrar un speedbutton.

Lo único malo es que pierdo la apariencia XP ... :(

droguerman 11-04-2007 14:25:38

Cita:

Empezado por Troffed
Muchas gracias, voy a intentarlo por ese camino, a ver si puedo en lugar de pintar el botón estandar de cerrar un speedbutton.

Lo único malo es que pierdo la apariencia XP ... :(

no la pierdes si usas los themeservices, te daria un ejemplo pero recien los he descubierto


La franja horaria es GMT +2. Ahora son las 21:52:42.

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