Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Expandir imagen en un SpeedButton (URGENTE !!) (https://www.clubdelphi.com/foros/showthread.php?t=14130)

jymy788 10-09-2004 10:48:47

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.

Neftali [Germán.Estévez] 10-09-2004 16:53:14

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...


La franja horaria es GMT +2. Ahora son las 05:48:22.

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