theme temas tema personalizado para google fondo creator como chrome cambiar anime delphi dwm aero-glass tabbed-interface

delphi - personalizado - temas para google chrome anime



PestaƱas de estilo de Google Chrome en vidrio en Delphi (4)

Estoy tratando de implementar pestañas de estilo de Google Chrome, en Windows 7, en una aplicación Delphi.

Los elementos de esto son:

  • las pestañas pueden extenderse al área no cliente como lo hacen en Google Chrome.
  • dibuja correctamente en Vista y Windows 7 cuando el vidrio está habilitado
  • las pestañas funcionan igual que google chrome, y se ven como google chrome, sobre vidrio.

He descubierto que los desafíos que tengo que superar son:

  • ¿Cómo obtengo un control (control VCL) para extenderme al área no cliente? (Una buena muestra de un control que hace esto es el control Ribbon incluido en las fuentes de VCL, pero no he visto a nadie más hacerlo, y se necesita bastante hacking para que la Ribbon funcione)
  • Cómo dibujar bitmaps correctamente sobre el vidrio? (DWM API). Una pregunta relacionada ya responde ese aspecto, aquí, esta pregunta también fue formulada por mí.

No quiere una ventana de vidrio llena, pero tendrá que dibujar las pestañas usted mismo ya que no hay un control que yo sepa que le dará el aspecto exacto que busca. Si usa las propiedades GlassFrame del formulario actual, habilítelo y configure la parte superior a la altura que desea para sus pestañas, coloque un paintbox en esta área y use las llamadas GDI + para dibujar sus pestañas manualmente. Una buena biblioteca que debería funcionar para esto está disponible en EDN ( http://cc.embarcadero.com/Download.aspx?id=26950 ). Sin usar GDI +, podrá dibujar en el cuadro de pintura, pero el negro se volverá transparente. Con GDI + puede dibujar libremente en el cristal en cualquier color. Por ejemplo:

Fuente:

unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, GdiPlusHelpers, GdiPlus, StdCtrls, ExtCtrls; type TForm6 = class(TForm) pb1: TPaintBox; procedure pb1Paint(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form6: TForm6; implementation {$R *.dfm} procedure TForm6.pb1Paint(Sender: TObject); var Graphics : IGPGraphics; Brush: IGPSolidBrush; FontFamily: IGPFontFamily; Font: IGPFont; Point: TGPPointF; Pen: IGPPen; begin Graphics := Pb1.ToGPGraphics; Brush := TGPSolidBrush.Create(TGPColor.Create(255, 0, 0, 0)); FontFamily := TGPFontFamily.Create(''Consolas''); Font := TGPFont.Create(FontFamily, 12, FontStyleRegular, UnitPoint); Point.Initialize(1, 0); Graphics.TextRenderingHint := TextRenderingHintAntiAlias; Graphics.DrawString(''GDI+ Black Text'', Font, Point, Brush); Pen := TGPPen.Create(TGPColor.Create(255, 0, 0, 0)); Graphics.DrawLine(Pen, 0, 0, 200, 100); end; end.

Formar:

object Form6: TForm6 Left = 0 Top = 0 Caption = ''Form6'' ClientHeight = 282 ClientWidth = 418 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = ''Tahoma'' Font.Style = [] GlassFrame.Enabled = True GlassFrame.Top = 22 OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object pb1: TPaintBox Left = 0 Top = 0 Width = 313 Height = 105 OnPaint = pb1Paint end end

EDITAR Actualizado a anti-alias del texto para que se vea mejor.




Acabo de completar una implementación bastante completa de Chrome Tabs para Delphi.

Las características incluyen:

  • Aspecto y sensación completamente configurables, incluidos degradados, transparencias y formas de pestañas personalizadas
  • Las pestañas se pueden pintar en la barra de título cuando se usa Aero
  • Funciona en vidrio Vista
  • Animación de movimiento de tabulación
  • Efectos de estilo de transición de tabulación (desvanecimiento entre colores y niveles alfa)
  • Arrastrar y soltar dentro del contenedor y entre contenedores
  • Arrastre la pestaña de visualización de imágenes y cualquier TWinControl
  • Cambio de tamaño de la pestaña inteligente cuando el usuario hace clic en el botón Cerrar
  • Cambio de tamaño de la pestaña de fluido con tamaños de pestaña mínimo y máximo
  • El botón Agregar pestaña se puede colocar a la izquierda, derecha o flotante derecha
  • Desplazamiento con todas las funciones, incluido el desplazamiento automático al arrastrar
  • La pantalla de contenido de la pestaña inteligente oculta / muestra elementos según el ancho de la pestaña
  • El propietario dibuja cualquier elemento
  • Texto de derecha a izquierda
  • Pestañas fijadas
  • Giradores de pestañas: renderizados y mapa de bits.
  • Pestañas modificadas con brillo animado
  • Imágenes de pestañas e imágenes superpuestas
  • Pase el mouse sobre el resplandor
  • Muchos eventos
  • Cargar / guardar apariencia y opciones para transmitir / archivo
  • Generar apariencia y sentido del código Delphi

Puede descargar la fuente y una demostración / editor completos aquí: http://code.google.com/p/delphi-chrome-tabs/