Ver Mensaje Individual
  #2  
Antiguo 04-01-2009
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Este código solo controla cuando mueves la ventana a la izquierda y derecha:
Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Moviendo(var message:TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Moviendo(var message: TWMWindowPosChanging);
begin
  if message.WindowPos.x + self.Width >= screen.Width then
    message.WindowPos.x := screen.Width - self.Width
  else if message.WindowPos.x <= 0 then
    message.WindowPos.x := 0;
end;

Lo que hace es capturar el mensaje que windows le pasa a una ventana cuando ésta se está moviendo (o cambiando su tamaño) WM_WINDOWPOSCHANGING y en la rutina lo que hago es ver la posición actual message.windowPos.x y cuando se salga de la pantalla, le asigno un valor fijo.

Faltaría por comprobar el límite de arriba y de abajo, pero te dejo que trastees un poco .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita