Me parece que vamos a tener que alquilar un apartamento entre los dos

y tomarnos las birras en el bar del barrio, mi mujer tambien me quiere echar de casa

, menos mal que nos quedan las niñas...y el portatil.
Bueno, visto, lo que has hecho es mover las ventanas hijas cuando mueves el padre con
Código Delphi
[-]
procedure TFPrincipal.WMWindowPosChanging(var Message: TWMWindowPosChanging);
begin
MoveFW();
inherited;
end;
procedure TFPrincipal.MoveFW;
var
X: Integer;
begin
if Length(f2) > 0 then
for X := 0 to Length(f2) - 1 do
begin
if (TForm2(f2[X]).Visible) then
begin
TForm2(f2[X]).moviendo := true;
TForm2(f2[X]).Top := Self.Top + TForm2(f2[X]).difY;
TForm2(f2[X]).Left := Self.Left + TForm2(f2[X]).difx;
TForm2(f2[X]).moviendo := False;
end;
end;
end;
y en el hijo para apuntar la posicion actual
Código Delphi
[-]
procedure tform2.WMWindowPosChanged(var Message: TWMWindowPosChanged);
begin
if moviendo=false then
begin
difx:=left-fprincipal.Left;
difY:=top-fprincipal.Top;
end;
inherited;
end;
para controlar los limites
Código Delphi
[-]
procedure TForm2.WMMove(var Message: TWMMove);
begin
if leftthen left:=FPrincipal.Left;
if (left+ width)>(fprincipal.Left+fprincipal.Width) then
left:=(fprincipal.Left+fprincipal.Width)-width;
if (top + Height)>(fprincipal.top+fprincipal.Height) then
top:=(fprincipal.top+fprincipal.Height)-Height;
if topthen top:=FPrincipal.Top;
end;
lo que me resulta curioso es el uso de esta funcion, le engañas a la cola de mensajes, quizas es que yo lo hubiera hecho con onmousemove,down y up, vamos la costumbre de cada uno, supongo

(editado: supongo que con un mensaje del sistema te ahorras asignar los eventos move,down,up a cada control, so burro)
Código Delphi
[-]
procedure TForm2.WMNCHitTest(var Msg: TWMNCHitTest) ;
begin
inherited;
if Msg.Result = htClient then Msg.Result := htCaption; end;
Desde luego el efecto es justo el deseado, me voy a poner a trabajar en esta tecnica que creo que va a ser la buena.
Cuando quieras las birras (o cafe)
PD: ¿porque se usa inherited, y cuando o porque se pone al principio o final de funciones? Thanks.