Иногда записанный TestComplete'ом код не воспроивзодится так, как хотелось бы. Один из "проблемных" методов - метод Drag(), который позволяет перетащить объект на другое место. В этом случае можно воспользоваться методами MouseDown() и MouseUp() объекта Sys.Desktop для создания собственной функции перетаскивания.

function DragDrop(obj, deltaX, deltaY)
{
  var iX = obj.ScreenLeft + obj.Width/2;
  var iY = obj.ScreenTop + obj.Height/2;
  Log.Picture(obj.Picture(), "Object to be moved");
  obj = Sys.Desktop.ObjectFromPoint(iX + deltaX, iY + deltaY);
  Sys.Desktop.MouseDown(VK_LBUTTON, iX, iY);
  obj.HoverMouse(obj.Width/2, obj.Height/2);
  Sys.Desktop.MouseUp(VK_LBUTTON, iX + deltaX, iY + deltaY); 
}

Эта функция нажимает левую кнопку мыши в центре объекта, который надо перетащить, а затем отпускает кнопку в новом месте. Пример использования функции для перемещения иконок на панели инструментов Быстрый запуск:

function Test3()
{
  var w1 = Sys.Process("Explorer").Window("Shell_TrayWnd").Window("ToolbarWindow32", "Quick Launch");
  DragDrop(w1, -30, -20);
}

Для того, чтобы оставлять комментарии, вы должны войти под своим логином.