1
Ошибки / Ошибка с фиксацией окон
« : 23 Октября 2020, 12:39:49 »
Добрый день. Появилась такая проблема недавно, после обновление было все ок, а через какое-то время открыл снова проект и окна больше не фиксируются после перемещения и как-будто им координаты не задаются.
Писал функцию, что по нажатию кнопки открывается окно с заданным положением. Галка Запоминать положение отключена, так как не однозначно мной трактуется (запоминать последнее положение после перемещения или запоминать последнее заданное положение (я ж могу из скрипта задавать положение)). Задаю положение окна из скрипта, по смене значений переменной даю другие координаты. - Потом все это похерилось, да и я уже понял, что слишком сложное сделал.
Начал тестить с просто по кнопке задавать координаты (нажали-открыли/записали, переместили, закрыли, нажали-открыли/записали). Галка все еще снята на запоминание положения. Так вот вроде окно должно быть в задаваемых координатах, а оно остается в последней позиции после перемещения.
Может я чего не так делаю?
Это функция которая вызывает окно, меняет цвет кнопки по биту слова, на которые затянуты кнопки. Пытался ее модифицировать, писал, что по изменению бита меняется цвет кнопки, закрывается окно и записываются координаты окна (заготовка, чтобы снова его открыть на первоначальном месте). В итоге он первый раз открывает там где надо, а после перемещения открывает там где остановились. Хотя галка на запоминание снята.
Есть сразу предложение: ввести возможность запрета перемещений окон. Сейчас такого параметра нет.
Писал функцию, что по нажатию кнопки открывается окно с заданным положением. Галка Запоминать положение отключена, так как не однозначно мной трактуется (запоминать последнее положение после перемещения или запоминать последнее заданное положение (я ж могу из скрипта задавать положение)). Задаю положение окна из скрипта, по смене значений переменной даю другие координаты. - Потом все это похерилось, да и я уже понял, что слишком сложное сделал.
Начал тестить с просто по кнопке задавать координаты (нажали-открыли/записали, переместили, закрыли, нажали-открыли/записали). Галка все еще снята на запоминание положения. Так вот вроде окно должно быть в задаваемых координатах, а оно остается в последней позиции после перемещения.
Может я чего не так делаю?
Код
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;
Это функция которая вызывает окно, меняет цвет кнопки по биту слова, на которые затянуты кнопки. Пытался ее модифицировать, писал, что по изменению бита меняется цвет кнопки, закрывается окно и записываются координаты окна (заготовка, чтобы снова его открыть на первоначальном месте). В итоге он первый раз открывает там где надо, а после перемещения открывает там где остановились. Хотя галка на запоминание снята.
Есть сразу предложение: ввести возможность запрета перемещений окон. Сейчас такого параметра нет.