![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Supongo que entre ellos se están "pisando" de ahí que se ejecuten los Paint de forma sucesiva.
Si tienes redefinido el método Paint, tal vez puedes evitar llamar al inherited. De todas forma sin ver el código es difícil.
__________________
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. |
|
#2
|
|||
|
|||
|
Gracias por la rápida respuesta. Sí, tienes razón en lo de que se están pisando, por eso había dicho que las fotos laterales se mostraban bien, pero la inferior (que se pinta sobre el slider) provoca la reentrada.
El código que utilizo es relativamente simple. Lo que hago (olvidándonos de las imágenes laterales) es: -Calculo los pixeles de la imágen inferior, reduciendo el brillo de cada uno de ellos en función a una máscara previamente almacenada en memoria. -Calculo la altura a la que debe estar la imágen (siempre pegada a la palanca del slider). -Llamo al método Update de la imágen. -Llamo a inherited. El código (simplificado) es el siguiente: Código:
//Para la sombra de abajo....
topIm:=topIm+fHandlerBitmap.Height; //Cálculo de la altura (topIm
//inicializada cuando las otras sombras)
//Aplicación de la máscara de la sombra y cambio de brillo pixel a pixel:
temp.Assign(backBottomImage.Picture.Bitmap);
temp.Width:=backBottomImage.Width;
temp.Height:=backBottomImage.Height;
for i := 0 to temp.Height -1 do begin
DestRow := fBackGroundBitmap.ScanLine[i+topIm];
for j := 0 to temp.Width - 1 do begin
colorRGB:=(DestRow[J].rgbtBlue shl 16)+(DestRow[J].rgbtGreen shl 8)+DestRow[J].rgbtRed;
temp.Canvas.Pixels[j,i]:=cambiaBrilloPixel(colorRGB,fShadeBitmap.Canvas.Pixels[J,I+topIm],RGBF_BGR);
end;
end;
backBottomImage.Picture.Bitmap.Assign(temp);
backBottomImage.Top:=topIm+Self.Top+1;
temp.Free;
//Indico que la imagen a cambiado
backBottomImage.Update;
inherited Paint; //Llamo al método superior
Un saludo, Rubén |
|
#3
|
||||
|
||||
|
OK, a eso me refería, tal vez en algunos casos, debas evitar llamar al método inherited.
__________________
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. |
|
#4
|
|||
|
|||
|
Sí, pero estoy obligado a llamar al método inherited, porque si no, no se repinta el botón del slider. De todas maneras, he probado a no llamarlo, y sigue reentrando en el Paint una y otra vez.
Un saludo, LoPiTaL |
|
#5
|
||||
|
||||
|
Cita:
De todas formas, parece que la cosa no es tan sencilla como yo imaginaba... ![]()
__________________
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. |
|
#6
|
|||
|
|||
|
Ya he encontrado la solución!! Ueeeee
He visto que existen los métodos Updating y Updated, que activan flags de dibujado. Se pueden utilizar de la siguiente forma: Código:
if (csUpdating in Self.ComponentState) then
Exit;
Self.Updating;
{Código que quieras de dibujado... por ejemplo el Image.Update que me
molestaba a mí}
//Al final de la función
Self.Updated
Un saludo, Rubén |
|
#7
|
||||
|
||||
|
Gracias a tí por la respuesta.
Habrá que apuntarla (Updating..Updated).
__________________
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Método más sencillo para lanzar una única consulta sql a BD mysql | minime | Conexión con bases de datos | 3 | 04-09-2007 20:30:44 |
| Lanzar excepciones | cahern4 | Varios | 6 | 14-04-2005 22:40:23 |
| Evitar la ejecución del método padre | Egroc | Varios | 3 | 22-07-2004 18:16:11 |
| Lanzar procedimiento | kalimero | MS SQL Server | 6 | 27-04-2004 19:22:33 |
| Lanzar evento.... | craven | OOP | 4 | 08-09-2003 22:04:05 |
|