powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Жизненный цикл формы
45 сообщений из 45, показаны все 2 страниц
Жизненный цикл формы
    #39872087
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть процедура сохранения параметров формы (координат и сплитеров) в INI-файл. Эта процедура отрабатывает в том числе и на WM_WINDOWPOSCHANGED. Ситуация такая: закрываю приложение - всё сохраняется нормально. Ставлю брэкпоинт на первой строке Create главной формы и к этому моменту INI-файл уже изменён на дефолтные (дизайн-таймные) параметры. Что у нас происходит до Create у формы? Я уже завёл глобальную переменную Locked, решаю где её делать TRUE .
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872094
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для решения проблемы воспользовался Application.Tag
Но всё же интересно что происходит до Create если во всех учебниках onCreate это исток
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872095
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rus,




Есть процедура Loaded - тама смотри.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872096
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusДля решения проблемы воспользовался Application.Tag
Но всё же интересно что происходит до Create если во всех учебниках onCreate это исток
Воспользуйся отладчиком и кнопкой F7.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872129
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Писать на диск состояние при любом перемещении/изменении -- это фейл. Надо делать это либо при закрытии формы/приложения, либо писать в память/переменную, а при закрытии формы/приложения сбрасывать уже на диск.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872155
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JaDi, не вижу криминала. С какой частотой Вы любите перемащать формы? Вопрос риторический. В любом случае спасибо за Ваше мнение
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872170
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OxY63rusJaDi, не вижу криминала.
"Спасибо" скажут пользователи недорогих SSD. Любая дисковая операция при этом ведет к лишнему дерганью антивируса, а тот в свои логи еще чего-нить будет запихивать.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872173
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusНо всё же интересно что происходит до Create если во всех учебниках onCreate это исток

Во-первых, Create и OnCreate это две очень разные вещи. Между первым и вторым происходит
очень много всего. Выкинь учебники, открой для себя исходники VCL.
Во-вторых, окно перемещается при создании. Сурпрайз? Да, именно так написана уже
упомянутая VCL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872187
SimplTsar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872219
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrigoriyFomin, это проблема антивируса. Пользователь сделал действие я хочу это запомнить. И использовать даже в случае крэша приложухи
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872220
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, уже ни разу не сюрпрайз. Как раз и рассчитывал получить полезную инфу запостив сюда?
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872223
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusDimitry Sibiryakov, уже ни разу не сюрпрайз. Как раз и рассчитывал получить полезную инфу запостив сюда?
бл?*:!, что это за диалект?
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872228
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё, смирись и имей толерантность
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872233
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusКак раз и рассчитывал получить полезную инфу запостив сюда?

Это ты зря. Ни букварь, ни MSDN, ни исходники VCL тебе тут пересказывать не будут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872349
Linux_64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OxY63rus,
А что у вас передаётся с ini-файла?, каковы значения по-умолчанию? Что произойдёт, если вы удалите ini-файл? Можно увидеть код процедуры OnCreate ?
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872353
Linux_64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OxY63rus, до OnCreate происходит то, что вы кликаете мышкой на запуск приложения и в этот момент инициализируются переменные и читается ваш ini-файл
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872357
Linux_64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WM_WINDOWPOSCHANGED....
Вы устанавливаете ограничение на размер или положение формы до того, как записать это в ИНИ-файл?. Надеюсь значения по-умолчанию в третьем параметре файла меньше, чем размер этого ограничения....
В любом случае, покажите ваш код OnCreate
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872699
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хто тут?!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872812
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OxY63rusУ меня есть процедура сохранения параметров формы (координат и сплитеров) в INI-файл. Эта процедура отрабатывает в том числе и на WM_WINDOWPOSCHANGED. Ситуация такая: закрываю приложение - всё сохраняется нормально. Ставлю брэкпоинт на первой строке Create главной формы и к этому моменту INI-файл уже изменён на дефолтные (дизайн-таймные) параметры. Что у нас происходит до Create у формы? Я уже завёл глобальную переменную Locked, решаю где её делать TRUE .

Я тоже так делаю, только в OnShow. Восстанавливаю размер и положение окна закрытого в последний раз. Сохраняю в OnClose. Все работает. Можно еще использовать OnActivate/OnDeactivate. Но так как формы у меня модальные, то я с этим не парюсь.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872848
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Belotsky Serge, я тоже сохранял я onClose, а сейчас хочу сохранять сразу по изменению положения. Код приводить не имеет смысла, если принцип нужен поясню. На сообщение WM_WINDOWPOSCHANGED вешаю обработчик, который сначала проверяет новые параметры формы с текущими. Если изменили, то разблркирует сохранение параметров (Applucation.Tag присваивает определённое значение. Потом inherited собственно изменяет параметры формы. Процедура сохранения перед изменением INI проверяет значение Application.Tag и только если оно разблокировано (имеет определённое значение), то сохраняет. И теперь перед созданием всех форм мы блокируем Tag,а разблркирует только в нужных событиях формы и, как писал выше, при определённых условиях в обработчик сообщения.

за термин "блокировать Tag" не ругайте, кому надо - тот поймёт
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872849
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полная хрень.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872850
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как оно работает при развёртывании на весь экран или минимизации ты уже проверил?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872859
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, у меня bsSizeToolWin. При закрытии уходит в трей. В трее меню с выходом
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872866
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusу меня bsSizeToolWin. При закрытии уходит в трей.

И ты уже проверил как она реагирует на пункт меню или горячую кнопку Windows
"минимизировать все окна"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872870
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, проверил - не реагирует
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39872915
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusСтавлю брэкпоинт на первой строке Create главной формы
Вы понимаете разницу между Create и OnCreate? Если да, то точно ли правильно используете термины?

OxY63rusЭта процедура отрабатывает в том числе и на WM_WINDOWPOSCHANGED
Зачем?
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39873584
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer Если да, то точно ли правильно используете термины?
OK. В первой строке OnCreate.

softwarerЗачем?
Хочу помнить даже при крахе приложения. Или это сверхзадача ?
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39873595
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63russoftwarer Если да, то точно ли правильно используете термины?
OK. В первой строке OnCreate.


Ты исходники vcl посмотри. OnCreate вызывается либо в самом конструкторе, либо сразу после него, в зависимости от состояния OldCreate. После того, как форма готова (созданы все объекты, назначена оконная процедура, назначены обработчики), она регистрируется в объекте Screen. И, если форму нужно показать - вызывается SetWindowPos. А у тебя к этому времени уже обработчик ждет. О чем тебе сразу сказали: 21987592
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39873601
Сергей N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OxY63rusJaDi, не вижу криминала. С какой частотой Вы любите перемащать формы? Вопрос риторический. В любом случае спасибо за Ваше мнение

Так ваша программа на WM_WINDOWPOSCHANGED и при любом изменении Z-ордера будет дергаться к диску. Такой подход может быть оправдан только для критически важных сервисных программ, но не клиентских приложений. Ну ладно, бог с ним, ресурсом диска, так это же еще и замедляет систему.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39873616
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей N, нет
Выше я описал случаи когда разрешаю приложению дёргать диск
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39873621
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusХочу помнить даже при крахе приложения. Или это сверхзадача ?

Нет, сверхзадача это сделать так, чтобы приложение работало и не падало. Но раз Вам это не
под силу...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39873683
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusOK. В первой строке OnCreate.
Тогда уже ответили - раньше неё выполняется чёртова уйма всего. В том числе считываются из dfm дизайн-таймовые настройки.

OxY63rusХочу помнить даже при крахе приложения. Или это сверхзадача ?
А зачем писать приложение так, чтобы оно крашилось? Это не сверхзадача, просто неудобно и неэффективно.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39874483
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer, ответы все получены. Дополнительных вопросов нет. Всех благодарю.

Dimitry Sibiryakov, крах не моего кода, а, например, падение напряжения.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39874485
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.10.2019 11:44, OxY63rus пишет:
>
> крах не моего кода, а, например, падение напряжения.

не нужно пытаться решать аппаратные проблемы софтовыми способами.
аспирин УПСа!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39874814
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну для объективности всего могу сказать, что хром даже отключение питание переживает - состояние сохраняется. другое дело, конечно, каких это ресурсов требует.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39874833
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonкаких это ресурсов требуетбраузеры щаз вообще один из основных видов дрючащих непрерывно диск, на их фоне беспокойсто об износе винта невинными сохранениями конфига при перетаскивании окна просто умиляют
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39874975
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavanбраузеры щаз вообще один из основных видов дрючащих непрерывно диск
"... скоро будет одно сплошное телевидение..." ©

зы. я тоже не понимаю, когда одна единственная вкладка браузера запускает 7-8 параллельных процессов, напрягая при этом винт (особенно hdd). Так никому памяти не хватит...
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39875842
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TIniFile в Delphi7 очень медленно работает, писАть туда при каждом чихе - тормозить программу и ее интерфейс.
Использую TMemIniFile - он на диск не сбрасывает пока не скажешь, в оперативке работает быстро.
Читаю настройки в OnCreate формы, записываю в OnDestroy.
Сбрасываю на диск при закрытии приложения.
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39875857
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.10.2019 11:12, fraks пишет:
> Читаю настройки в OnCreate формы, записываю в OnDestroy.
> Сбрасываю на диск при закрытии приложения.

у поциента задача падучая.
до OnDestroy не доходит подчас.
потому и лисапед.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39875936
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksTIniFile в Delphi7 очень медленно работает, писАть туда при каждом чихе - тормозить программу и ее интерфейс.
Использую TMemIniFile - он на диск не сбрасывает пока не скажешь, в оперативке работает быстро.
Читаю настройки в OnCreate формы, записываю в OnDestroy.
Сбрасываю на диск при закрытии приложения.

Насчёт скорости TIniFile: это обёртка над соответствующими функциями WinApi. При записи в Ini скорее всего будет выполняться работа с файловым кэшем, плюс Windows, вероятно, пытается как-то улучшать производительность при работе с ini-файлами. Тормоза бывают только если будет мешать антивирус (зависит также от размера ini-файла и от интенсивности записи в него).
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39876052
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksTIniFile в Delphi7 очень медленно работает, писАть туда при каждом чихе - тормозить программу и ее интерфейсможно же не использовать глючные/тормозные компоненты и/или писать асинхронно. а гробануться досрочно что угодно может
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39876333
Devillio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что если не сразу писать в ini, а сделать через таймер?
Там где раньше писалось - Timer.Enabled := False; Timer.Enabled := True;
А уже в OnTimer - записать ini?
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39876484
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DevillioЧто если не сразу писать в ini, а сделать через таймер?

А смысл?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39876584
Devillio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry, ну ТС же жалуется, что у него отрабатывает сохранение еще при несоздавшейся форме. добавить проверку, создан ли таймер. во-вторых, пореже будет "дергать диск".
...
Рейтинг: 0 / 0
Жизненный цикл формы
    #39876596
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDevillioЧто если не сразу писать в ini, а сделать через таймер?

А смысл?..

#потомучтомогу
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Жизненный цикл формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]