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 10-09-2004
jymy788 jymy788 is offline
Miembro
 
Registrado: jun 2004
Posts: 120
Poder: 20
jymy788 Va por buen camino
Expandir imagen en un SpeedButton (URGENTE !!)

Buenas a todos los del foro.

A ver, seguro que para muchos esto es una tontería pero a mi se me ha atragantado y no soy capaz de sacarlo:

Tengo una serie de SpeedButtons asociados a un imagelist. Las imágenes son pequeñas y los botones grandes y quiero que cuando las cargue en los botones las expanda (me da igual que las pixelice) al tamaño del speedbutton. Me podéis echar un cable?

Gracias a todos.
Responder Con Cita
  #2  
Antiguo 10-09-2004
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
Cita:
Empezado por jymy788
Tengo una serie de SpeedButtons asociados a un imagelist. Las imágenes son pequeñas y los botones grandes y quiero que cuando las cargue en los botones las expanda (me da igual que las pixelice) al tamaño del speedbutton. Me podéis echar un cable?
Bueno, con el componente estandard no se si lo vas a poder hacer, pero derivándolo no debe ser muy difícil.
El método Paint de TSpeedButton está protected y por lo tanto puedes hacer un override.
Crea un componente derivado, redefine el paint en la zona protected con algo como ésto:

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

y debajo generas una implementación similar a ésta:

Código Delphi [-]
const
  SPACE_BORDER_BUTTON = 2;
var
  MyOther: TRect;
begin
  inherited;
  { Calculamos la nueva zona de dibujo (ampliamos con dos
    pixels para no machacar los bordes del botón}
  MyOther := Self.ClientRect;
  MyOther.Left := MyOther.Left + SPACE_BORDER_BUTTON;
  MyOther.Top := MyOther.Top + SPACE_BORDER_BUTTON;
  MyOther.Right := MyOther.Right - SPACE_BORDER_BUTTON;
  MyOther.Bottom := MyOther.Bottom - SPACE_BORDER_BUTTON;
  // Repintar rellenado el Rect
  Self.Canvas.StretchDraw(MyOther, Self.Glyph);

Espero que te sirve. Si te da algun error ya dirás...
__________________
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


La franja horaria es GMT +2. Ahora son las 12:30:05.


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