Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 21-10-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Después de darle tanta vuelta al asunto he alcanzado responder a mi pregunta en un 90% creando un BitMap temporal, según el código de abajo, Cuando corro la aplicación y hago click en el primer botón funciona (me muestra un elemento de la primera fila), pero el segundo botón no me muestra nada!

De nuevo vuelvo a correr la aplicación y hago click pero esta vez en el segundo botón funciona (me muestra sí un elemento de la segunda fila) pero ahora el primer botón no me muestra nada!

¿A que se debe todo esto?

Código Delphi [-]
 
implementation
var
  Bitmap, tempBmp: TBitmap;
  DestRect, SrcRect: TRect;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin  //tempBmp contiene la primera fila del Bitmap
   tempBmp.Width := BitMap.Width;
   tempBmp.Height := Bitmap.Height div 2;
   DestRect := RECT(0,0,tempBmp.Width-1, tempBmp.Height-1);
   SrcRect:=DestRect;
   tempBmp.Canvas.CopyRect(DestRect, BitMap.Canvas, SrcRect);
   ImageList1.Width:= Bitmap.Width div 10;
   ImageList1.Height:= tempBmp.Height;
   ImageList1.AddMasked(tempBmp, tempBmp.Canvas.Pixels[0,0]);
   ImageList1.Draw(PaintBox1.Canvas,0,0,1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin //tempBmp contiene la segunda fila del Bitmap
   tempBmp.Width := BitMap.Width;
   tempBmp.Height := Bitmap.Height div 2;
   DestRect := RECT(0,0,tempBmp.Width-1, tempBmp.Height-1);
   SrcRect:=DestRect;
   SrcRect.Top := tempBmp.Height;
   SrcRect.Bottom := Bitmap.Height-1;
   tempBmp.Canvas.CopyRect(DestRect, BitMap.Canvas, SrcRect);
   ImageList1.Width:= Bitmap.Width div 10;
   ImageList1.Height:= tempBmp.Height;
   ImageList1.AddMasked(tempBmp, tempBmp.Canvas.Pixels[0,0]);
   ImageList1.Draw(PaintBox1.Canvas,0,0,2);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  Bitmap:= TBitmap.Create;
  tempBmp:= TBitmap.Create;
  BitMap.LoadFromFile(getcurrentdir+'/Doble.BMP');
  ImageList1.BkColor:=clNone;
  ImageList1.BlendColor:= clNone;
  ImageList1.DrawingStyle:= dsTransparent;
  ImageList1.Masked:= True;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Bitmap.Free;
  tempBmp.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  PaintBox1.Canvas.Fillrect(PaintBox1.Canvas.ClipRect); //Borra el Canvas
end;
end.
Luego para corregir este problema, he creado un tercer botón para el borrado del Canvas. En el código de arriba al hacer click en el primer botón dibuja bien, luego click en el tercer botón y borra el Canvas; pero cuando click en el segundo botón me vuelve a mostrar el mismo elemento de la primera fila, y no el elemento de la segunda fila.

¿Cómo corregir este problema? Por favor.
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
MDIChild encima vtdeleon OOP 2 20-02-2005 11:49:24
TImageList...como se usa? alt126 C++ Builder 2 09-02-2005 09:30:59
TImageList scooterjgm OOP 1 15-10-2004 10:43:55
Añadir imagenes en un TimageList JROMAN Gráficos 1 08-10-2004 09:21:45
TSpeedbutton Glyph desde un TImageList dmassive Varios 3 11-03-2004 15:06:02


La franja horaria es GMT +2. Ahora son las 10:20:26.


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