Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / OnActivate: вызывается только раз? / 25 сообщений из 29, страница 1 из 2
06.02.2018, 11:40
    #39597300
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OnActivate: вызывается только раз?
Читаю во всяких доках, что OnActivate вознивает в случае фокусировки окна. Однако разные способы повторить вызов этого события успехом не увенчались. Что я делаю не так?
...
Рейтинг: 0 / 0
06.02.2018, 11:53
    #39597315
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OnActivate: вызывается только раз?
Попробовать MDI-формы
...
Рейтинг: 0 / 0
06.02.2018, 12:06
    #39597330
SOFT FOR YOU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OnActivate: вызывается только раз?
JaDi,

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

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

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

Оки
Спасибо!

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

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

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


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


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

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

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

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

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


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