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.
Encontrado mucho más tarde, de Klever Components:
Pintar en el título de una forma vítrea que se explica aquí: http://delphihaven.wordpress.com/2010/04/22/setting-up-a-custom-title-bar-reprise/ También puede consultar las fuentes de controles de cinta de Delphi.
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/