Hola,
Yo apuesto por el evento "OnMouseMove" (creo que Lepe se refería a este evento en realidad).
Código Delphi
[-]
procedure TfrmPrincipal.btnEscurridizoMouseMove
(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
btnEscurridizo.Left := Random(Self.Width-btnEscurridizo.Width);
btnEscurridizo.Top := Random(Self.Height-btnEscurridizo.Height);
end;
Adjunto el código fuente de un ejemplo en funcionamiento a ver qué tal parece.
PD. De vez en cuando (aleatoriamente) el botón desaparece por completo del formulario: habría que depurar esto, pero, eso ya te lo dejo a ti.