Ver Mensaje Individual
  #1  
Antiguo 09-02-2006
modulay modulay is offline
Miembro
 
Registrado: feb 2006
Posts: 46
Reputación: 0
modulay Va por buen camino
Question DoubleBuffered

Hola,yo de nuevo.
Ando peleando con un Timage para moverlo sobre la superficie de un Tpanel.
Lo hago con esta rutina:

Código Delphi [-]

procedure TForm1.barcoMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  ImagenPos,MousePos: TPoint;
begin
  While DragDetect(fondo.Handle, ImagenPos) do
  begin
    GetCursorPos(MousePos);
    Windows.ScreenToClient(fondo.Handle, MousePos);  // fondo es un Tpanel,sobre el q se mueve la imagen
    (Sender as Timage).Left:=MousePos.X - X;
    (Sender as Timage).Top :=MousePos.Y - Y;
    Application.ProcessMessages;
  end;
end;

En un principio se notaba un parpadeo continuo y dañino a los ojos (como si fuera el canal plus codificao,sin exagerar) si la imagen arrastrada se salía lo más mínimo del area del Tpanel (que coincide con el área del form).
Eso lo he solucionado poniendo a TRUE la propiedad fondo.DoubleBuffered.
Ya no hay parpadeo,pero ahora,si la imagen se sale del área (sólo ocurre cuando lo hace por arriba o por la izquierda) el Tpanel,junto con todas las cositas que tiene puestas se deslizan hacia el lado contrario,quedándose la ventana vacía.Es un efecto muy curioso peo me tiene bien mosqueado.
¿Alguna idea?
Responder Con Cita