Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Desaparece la imagen al usar FillRect (https://www.clubdelphi.com/foros/showthread.php?t=65589)

Kandorf 28-12-2009 16:00:07

Desaparece la imagen al usar FillRect
 
Hola, estoy creando una aplicación en la que muestro una puntuación con 5 imágenes de una estrella, lo que quiero es que al posicionar el ratón de la mitad de la imagen a la izquierda muestre sólo la mitad de la imagen (para puntuar sólo con la mitad de una estrella).

Lo he intentado creando este método:
Código:

// Oculta la mitad de una estrella
procedure TFrmPelicula.OcultarEstrellaMitad(Estrella: TImage);
begin
  Estrella.Picture.Bitmap.Canvas.FillRect(Rect(Estrella.Width div 2,0,Estrella.Width-1,Estrella.Height-1));
end;

Pero lo que pasa es que la estrella desaparece entera.
La imagen que utilizo es un .ico, por si sirve de algo.

Un saludo.

defcon1_es 28-12-2009 18:28:30

una sugerencia:
¿Por qué no usas 2 iconos?

Uno para la estrella completa y otro para la media estrella.
Así te olvidas de repintar, y solamente tienes que cambiar un icono por otro...

Kandorf 29-12-2009 02:07:19

Hola, gracias por tu respuesta.
Ya había pensado en usar otra imagen para la mitad de la estrella, la cosa es que me ha dado por permitir dar un toque de personalización al programa y dejar que se cambie el dibujito de la estrella, con lo que crear las imágenes a pares sería una chapucilla, para un solo icono estaría bien.

De todas formas me acabas de dar una idea, reducir el ancho del TImage a la mitad y solucionado xD. Es cutrecillo pero permite lo de personalizar la imagen.

De todas formas me gustaría hacerlo con el DrawCell, pienso que es más profesional, así que acepto sugerencias.

Saludos!

EDIT:
Hum... lo he probado y da problemas porque reconozco si está en la mitad derecha o izquierda de la estrella por el OnMouseMove, pero si lo achico a la mitad, al posicionar el ratón en lo que sería la parte derecha de la estrella (la oculta), en realidad eso ya no es parte de la imagen, entonces ya no me la pinta entera...


La franja horaria es GMT +2. Ahora son las 22:03:02.

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