Добрый день. Появилась такая проблема недавно, после обновление было все ок, а через какое-то время открыл снова проект и окна больше не фиксируются после перемещения и как-будто им координаты не задаются.
Писал функцию, что по нажатию кнопки открывается окно с заданным положением. Галка Запоминать положение отключена, так как не однозначно мной трактуется (запоминать последнее положение после перемещения или запоминать последнее заданное положение (я ж могу из скрипта задавать положение)). Задаю положение окна из скрипта, по смене значений переменной даю другие координаты. - Потом все это похерилось, да и я уже понял, что слишком сложное сделал.
Начал тестить с просто по кнопке задавать координаты (нажали-открыли/записали, переместили, закрыли, нажали-открыли/записали). Галка все еще снята на запоминание положения. Так вот вроде окно должно быть в задаваемых координатах, а оно остается в последней позиции после перемещения.
Может я чего не так делаю?
function TTMS_BT_CLR_CHNG (CallButt :TM_Button; //кнопка вызова экрана
CallWin :TM_Window;
MenuSwitch :TM_Variable; //отслеживание работы битов меню
Num_Bit, //номер бита
RON,GON,BON, //цвет нажатой кнопки
ROFF,GOFF,BOFF :Integer //цвет ненажатой кнопки
):boolean;
begin
if GetBit(MenuSwitch.AsInt, Num_Bit) = true then begin //нажата кнопка
CallButt.States[1].Color := RGB(RON,GON,BON); //поменяли цвет
CallWin.ShowAll;
end
else begin //не нажата кнопка
CallButt.States[1].Color := RGB(ROFF,GOFF,BOFF); //поменяли цвет
CallWin.CloseAll;
CallWin.X :=80;
CallWin.Y :=80;
end;
end;
Это функция которая вызывает окно, меняет цвет кнопки по биту слова, на которые затянуты кнопки. Пытался ее модифицировать, писал, что по изменению бита меняется цвет кнопки, закрывается окно и записываются координаты окна (заготовка, чтобы снова его открыть на первоначальном месте). В итоге он первый раз открывает там где надо, а после перемещения открывает там где остановились. Хотя галка на запоминание снята.
Есть сразу предложение: ввести возможность запрета перемещений окон. Сейчас такого параметра нет.