Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   DoubleBuffered (https://www.clubdelphi.com/foros/showthread.php?t=30133)

modulay 09-02-2006 09:41:54

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?

modulay 09-02-2006 11:20:59

Me autorespondo :D

Código Delphi [-]

fondo.AutoSize := false;


La franja horaria es GMT +2. Ahora son las 04:02:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi