|
|
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Приветствую, до сих пор пользовался хаком: если нужно было что-то сделать в тот момент, когда форма загружена и видна , то помещал этот код в обработчик OnActivate формы (с выставлением флага для защиты от повторных активаций). Но это событие не срабатывает, если форма лежит на другом контроле (через .Parent := ...). Событие OnShow не подходит, тогда формы еще не видно. Событие WM_PAINT не отрабатывает, если форма полностью закрыта другими контролами. Без них не проверял т.к. нужно именно с полным закрытием. Что посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:26 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, пробежаться вверх по паренту и добавить свой код в ОнАктивате самого верхнего парента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:30 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнЧто посоветуете? PostMessage(WM_USER) и делай в его обработчике всё, что в голову взбредёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:35 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Оба совета про добавление чего-то в вызывающую форму. А только лишь силами событий (или перегруженных методов) встраиваемой формы можно решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:38 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнОба совета про добавление чего-то в вызывающую форму. С чего бы вдруг? PostMessage работает в OnShow поскольку к этому моменту хэндл уже создан. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:45 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
У меня есть такой метод ExecIdle(Action: TProc); Он один раз исполняет свой метод в OnIdle. Позволяет в процессе обработки какой-то "отложить" на её завершение какие-то действия. Я бы в OnShow вызвал свой ExecIdle и к моменту когда всё появилось на экране оно бы исполнилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:47 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнОба совета про добавление чего-то в вызывающую форму. А только лишь силами событий (или перегруженных методов) встраиваемой формы можно решить? Какого "добавления"? ОнАктивате - это ж ридрайт свойство, считай на лету текушее значение да замени ни два вызова - старый ОнАктивэйт парента плюс ОнАктивэйт твоей формы. Все в коде твоей формы, например, в ее конструкторе или ОнКриэйт обработчике... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:50 |
|
||
|
Чем заменить OnActivate формы, если она прикреплена к контролу через .Parent := ...
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКроик СемёнОба совета про добавление чего-то в вызывающую форму. С чего бы вдруг? PostMessage работает в OnShow поскольку к этому моменту хэндл уже создан. У меня возникают трабблы с отрисовками TPngObject на канве если её еще не видно. Даже если проверяю PaintBox.Canvas.HandleAllocated(). Не знаю, где там собака в недрах кода этих TPngObject зарыта, но всё нормально равотало если начинал это делать после OnActivate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2019, 17:57 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=59&tid=2038896]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 467ms |

| 0 / 0 |
