powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / OnActivate: вызывается только раз?
25 сообщений из 29, страница 1 из 2
OnActivate: вызывается только раз?
    #39597300
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю во всяких доках, что OnActivate вознивает в случае фокусировки окна. Однако разные способы повторить вызов этого события успехом не увенчались. Что я делаю не так?
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597315
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовать MDI-формы
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597330
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

А если не MDI?
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597336
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUЧитаю во всяких доках, что OnActivate вознивает в случае фокусировки окна. Однако разные способы повторить вызов этого события успехом не увенчались. Что я делаю не так? Не смотришь в исходники VCL.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597475
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

А по существу?
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597481
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUЧитаю во всяких доках, что OnActivate вознивает в случае фокусировки окна.
Там упущена маленькая деталь: эти события работают у форм в пределах приложения. У самого приложения нужно ловить в TApplicationEvents.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597487
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

На самом деле мне нужна гарантия, что код выполнится только один раз
И вот я думаю, нужно объявлять флаг и сравнивать его по OnActivate
Или достаточно просто прописать нужный код в OnActivate, т.к. он гарантированно выполнится только один раз :)
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597492
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы сделал и делаю с флагом.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597506
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUСоколинский Борис,
А по существу?
По существу: OnActivate срабатывает не на WM_ACTIVATE, а на CM_ACTIVATE, который форма шлет сама себе.
В отличие от OnCreate оно будет вызвано только когда включится обработчик сообщений.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597662
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

Оки
Спасибо!

CM_ACTIVATE я видел, но не было уверенности насчёт частоты вызова
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597669
Noskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUwadman,

На самом деле мне нужна гарантия, что код выполнится только один раз
И вот я думаю, нужно объявлять флаг и сравнивать его по OnActivate
Или достаточно просто прописать нужный код в OnActivate, т.к. он гарантированно выполнится только один раз :)

Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.FormActivate(Sender: TObject);
begin
  OnActivate:=nil;
  //А ниже код, который выполнится только один раз
end;
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597753
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Noskov,


В том то и вопрос. Писать такой код - невежество или нет? )
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597759
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUNoskov,


В том то и вопрос. Писать такой код - невежество или нет? )хак
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597764
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

ну а сделать поиск в исходниках по CM_ACTIVATE и CMActivate и посмотреть в каких случаях и откуда это сообщение посылается?
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597794
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повесьте таймер на форму с Interval=1, как сработает - enabled:=false.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597795
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,
Вызывается один раз при фокусинге на форме.
Если фокус с формы пропадет, а потом опять появится, то снова вызовется.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597801
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014,

У меня не вызвался
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597821
Dunkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU,

Создать вторую форму, вызвать её Form2.Show (не ShowModal), переключаться между формами и получать OnActivate.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597933
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,
В MSDN написано, что должно вызываться.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646274(v=vs.85).aspx
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597948
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014В MSDN написано
Там разве начали описывать VCL?
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39597950
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUПисать такой код - невежество или нет?а ты напиши и никому не показывай мало ли сколько оно там должно вызываться, в какой версии поломают или чей сторонний код пришлет такое сообщение нежданчиком
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39598013
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

А разве VCL не на системных сообщениях построена?
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39598021
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014А разве VCL не на системных сообщениях построена?
Далеко не всегда.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39598028
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,
Вот пример. Напиши простой пример и понятно будет.
...
Рейтинг: 0 / 0
OnActivate: вызывается только раз?
    #39598030
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanziv-2014А разве VCL не на системных сообщениях построена?
Далеко не всегда.
Приведи пример?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / OnActivate: вызывается только раз?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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