Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 388

/ вопрос открыт /

Проведём ещё один эксперемент :)
Создадим пустой проэкт, положем таймер на форму. В обработчике таймера напишем width := width - 100. Запустим. Через равные промежутки времени форма уменьшается. Теперь запустим ещё раз, но нажмём и держим левую кнопку мыши на заголовке формы. Держим, пока форма не уменьшится пару раз. Пускаем - форма восстановилась до тех размеров, когда мы зажали кнопку мыши. Вопрос: Как избавиться?

mvp Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

mvp (статус: 4-ый класс), 9 марта 2007, 14:22 [#2]:

Есть понятие layout - восстановление размеров и располажений компонент и форм такими, как они были в прошлый раз (ну или из файла). Это решается сохранением настроек в ini-файле. Но у меня восстановление прежних размеров происходит не сразу, а только после определённых действий. И за это время народ умудряется проделать этот трюк. Тестер и начальство хотят, чтобы было исправлено, да и некоторые пользователи жалуются (правда, если бы это была самая большая ошибка, то я бы был просто счастлив :))

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:44
Выполнено за 0.02 сек.