|
Вопрос # 388/ вопрос открыт / |
|
Проведём ещё один эксперемент :)
Создадим пустой проэкт, положем таймер на форму. В обработчике таймера напишем width := width - 100. Запустим. Через равные промежутки времени форма уменьшается. Теперь запустим ещё раз, но нажмём и держим левую кнопку мыши на заголовке формы. Держим, пока форма не уменьшится пару раз. Пускаем - форма восстановилась до тех размеров, когда мы зажали кнопку мыши. Вопрос: Как избавиться?
 |
Вопрос задал: mvp (статус: 4-ый класс)
Вопрос отправлен: 8 марта 2007, 15:08
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Aymenel
Здравствуйте, фокусник - mvp!
Проверял, форма не восстанавливает свой размер.
(Delphi 7, Windows Xp SP2)
 |
Ответ отправил: Aymenel (статус: 2-ой класс)
Время отправки: 8 марта 2007, 23:17
Оценка за ответ: 3
Комментарий к оценке: Хотя я проблема на delphi6 (xp64 prof), только что проверил на delphi7 (xp prof sp2) - всё точно также - восстанавливается - даже если форма ушла из под мышки. А вы точно по заголовку формы мышь зажимали?
|
Ответ #2. Отвечает эксперт: Помфюк Владимир Степанович
Здравствуйте, mvp!
Взял и проверил на XP Home SP2 в Delphi 5 и Delphi 7 - размер не восстанавливается. Но была видна рамка того же размера. Она-то и натолкнула на мысль поставить настройку "Show window contents while dragging". Вот тут и начались те глюки, которые Вы описываете. Выход - засекать размер окна при создании формы и при каждом событии таймера, а в OnResize проверять: если размер больше положеного - уменьшить. Правда появляются некрасивые дергания при условиях Вашего эксперимента, но тут уже Вам решать что лучше - дергания или восстановление размера.
 |
Ответ отправил: Помфюк Владимир Степанович (статус: Абитуриент)
Время отправки: 9 марта 2007, 11:11
Оценка за ответ: 4
Комментарий к оценке: Это конечно же вариант, но немного сложноват в реализации... Но так и сделаю, если выход не найду. Мне кажется, что достаточно дать понять окну, что кнопку мыши отпустили - только не могу найти соответствующее API
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 9 марта 2007, 14:22; участников в обсуждении: 2.
|
Шарайчук Сергей Олександрович (статус: 2-ой класс), 9 марта 2007, 10:30 [#1]:
Проверил всё что в голову пришло! ничево непомогает! Если несикрет, зачем тебе ето?
Я бы изменил мир, но Бог не дает исходники!
|
|
mvp (статус: 4-ый класс), 9 марта 2007, 14:22 [#2]:
Есть понятие layout - восстановление размеров и располажений компонент и форм такими, как они были в прошлый раз (ну или из файла). Это решается сохранением настроек в ini-файле. Но у меня восстановление прежних размеров происходит не сразу, а только после определённых действий. И за это время народ умудряется проделать этот трюк. Тестер и начальство хотят, чтобы было исправлено, да и некоторые пользователи жалуются (правда, если бы это была самая большая ошибка, то я бы был просто счастлив )
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|