|
|
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, подскажите событие которое идет после formshow. Нужно после того как форма загрузилось, подгрузить данные на форму, ничего не нажимая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 16:03 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
neteurtНужно после того как форма загрузилось, подгрузить данные на форму, ничего не нажимая Нормальные люди так не делают, но если очень хочется - запускаете в OnShow поток, который и подгрузит данные. Ещё чуть менее вменяемо - PostMessage() этой форме, в обработчике которого и будет загрузка данных. Уродливое бельмо вместо формы yf dc` dhtvz pfuheprb гарантировано. Совсем невменяемо (но нубы так и делают) - OnActivate. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 16:13 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 16:16 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, может быть у вас есть пример потока в FormShow ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 16:19 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
DimaBr, OnCreate идет перед FormShow ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 16:31 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а лучше PostMessage, как его можно использовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 16:32 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Добавлю ещё один вариант до кучи: TTimer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 17:05 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Настоящие гуру извращений делают так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Но если загрузка длительная, то явно лучше поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 17:11 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
neteurtPostMessage, как его можно использовать ? Вы не поверите, но у него есть только один способ использования: описанный в документации. Ни вертеть, ни полизать, ни на хвост нанизать - не получится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 17:17 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Если вы не делаете некие операции с формой на OnCreate или на OnShow, значит, в эти моменты вам чего-то не хватает. Нужно понять, чего именно не хватает, и в какой момент будет хватать. От этого зависит и метод "обхода". Что-то полезное происходит при обработке следующих, уже стоящих в очереди событий? PostMessage отправит вас в конец очереди, когда она к вам подойдет, почва уже будет подготовлена. Вместо PostMessage можно прокрутить очередь через Application.ProcessMessages, но это плохой способ. Однако, если должна пройти цепочка событий, каждое из которых вызывает следующее через постановку в очередь сообщений, такой метод будет бесполезен. Что-то полезное приходит извне, и надо только его дождаться? Тогда таймер, как показали выше. Интересно, как вы будете определять задержку таймера, экспериментально? Зачем запускать параллельный поток, который должен будет дергать визуальные компоненты из основного, лично мне непонятно. И, главное, что именно тот поток будет ждать, чтобы выполнить свою работу? Если по времени, то для этого и обычного таймера достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 17:59 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
shalamyanskyЕсли вы не делаете некие операции с формой на OnCreate или на OnShow, значит, в эти моменты вам чего-то не хватает. Обычно всё проще: операции загрузки данных длительные и на это время приложение не отвечает, а вместо формы на экране отвратительное белёсое пятно, которое никому не нравится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 18:18 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
А... Ну тогда, если загрузка длительна, PostMessage мало поможет, разве что перед "заморозкой" кнопки прорисуются, все равно неприятно. Я бы все-таки не запускал отдельный поток, лишнее это, а отправился в конец очереди и там на своем сообщении грузил бы потихоньку данные, вызывая через разумные интервалы ProcessMessages, чтобы глазу пользователя было приятно. И форма живет, и данные грузятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 18:28 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
shalamyanskyPostMessage мало поможет, разве что перед "заморозкой" кнопки прорисуются, все равно неприятно. Среднему дельфину и этого хватает. shalamyanskyгрузил бы потихоньку данные, вызывая через разумные интервалы ProcessMessages Чаще всего загрузка данных сводится к одному вызову Query.Open, так что облом с разумными интервалами. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 18:34 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Дельфин - это хорошо :) Можно влезть с ProcessMessages в Query.OnRow или Query.OnFetch, что там у них есть, но это уже перебор, пожалуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 18:43 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
shalamyanskyчто там у них есть Ничего там у них нет. Да и до фетча ещё не доходит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 18:46 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Программа должна стартануть мгновенно. И только по запросу юзера ушастого что-то тянуть из омерик вашых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 19:08 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
LocksmithPC Программа должна стартануть мгновенно. И только по запросу юзера ушастого что-то тянуть из омерик вашых. Открывать надо пустую форму с кнопкой "Обновить" ("Посчитать" или что там долгим запросом делается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 19:22 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Ага. Тыкаете Вы в ссылку, а Вам открывается браузер с пустой страницей. И кнопкой "обновить". Супер дизайн! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:07 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Ага. Тыкаете Вы в ссылку, а Вам открывается браузер с пустой страницей. И кнопкой "обновить". Супер дизайн! Писателей арбузов тоже стоит научить не грузить все закладки при старте разом. Открыл закладку (нажал кнопку обновить), тогда пусть и грузится. Плюс текущая - автоматом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:17 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Ага. Тыкаете Вы в ссылку, а Вам открывается браузер с пустой страницей. И кнопкой "обновить". Супер дизайн! Да, супер. Много лучше, чем конфигуратор 1с, который тянет полтора гига конфигурации с удаленного сервака при запуске. Которая, к слову, мне совсем не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:20 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Умолчально, по задумке создателей инструмента, сценарий делфи-приложения таков: 1. Все, что нужно и можно, грузится на OnCreate (откуда вы взяли OnShow? Show и Hide случаются в другие моменты, не надо лишний раз ничего трогать). Форма в это время не видна, пользователь ищет её на лужайке Майкрософта, но не находит. 2. Потом случается Show, и форма, полностью загруженная и прекрасная, окрывается взору. Такая задумка. Если шаг 1 стараниями программиста стал невозможно долог, перед ним запускают другую форму попроще, с логотипом, например "Borland", чтобы как-то успокоить отчаявшегося уже было пользователя и отвлечь от лужайки. Не бог весть что, но лучше пустышки с кнопкой "Приступить к работе". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:27 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
shalamyansky Умолчально, по задумке создателей инструмента... Мой сценарий: OnCreate инициирует создание DataModule для подключения к БД, который в свою очередь инициирует создание PasswordDialog 3 раза (в случае некорректного доступа). И даже после 3-х неудачных попыток MainWindow таки все равно создается с активном пунктом меню "Подключиться", а равно с её хардлинком на ToolBar`е, но с отключенными остальными пунктами меню, кроме "Настройки", где можно исправить данные для подключения. В случае успешного коннекта становятся активными все пункты меню, и первоначальная страница выбора действий пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:46 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
neteurt Нужно после того как форма загрузилось, подгрузить данные на форму, ничего не нажимая Асинхронная загрузка данных - не самая простая в реализации концепция. На том уровне владения инструментом, на котором Вы задаёте такие вопросы, лучше с ней не связываться. Сделайте базовый класс для форм приложения и сделайте в нём виртуальный метод, скажем, LoadData. В наследниках переопределяйте этот метод, делая подгрузку данных, а в базовом классе вызывайте его с OnShow. Тогда сейчас у Вас будет всё верно работать, а потом Вы легко сможете поэкспериментировать с переносом вызова LoadData в другие места и реализовать желаемый асинхронный функционал. YuRock Открывать надо пустую форму с кнопкой "Обновить" ("Посчитать" или что там долгим запросом делается). Открывать надо так, как удобно пользователю. Вы же предлагаете заранее назвать себя криворучкой и заставить пользователя делать кучу тупых лишних действий. shalamyansky Умолчально, по задумке создателей инструмента, сценарий делфи-приложения таков: Можно узнать, где Вы достали хрустальный шар, с такой точностью показавший Вам замыслы создателей инструмента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:48 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
Хороший сценарий. Но он все равно не решает проблему длительной инициации в случае, если авторизация прошла успешно с первого раза. Более того, во время заморозки на экране, скорее всего, будет еще болтаться уже ненужный диалог аутентификации, если не позаботиться его убрать специально. Ощущение у пользователя будет, что что-то не так с коннектом, хотя на самом деле уже идет загрузка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:55 |
|
||
|
Подгрузка данных после открытия формы
|
|||
|---|---|---|---|
|
#18+
LocksmithPC Мой сценарий Странноватое смешение стилей, начинается с одного варианта, а заканчивается другим. В этом случае и проще, и удобнее сразу показывать главную форму и в ней на старте выбрасывать диалог аутентификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2020, 20:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39965787&tid=2038242]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
192ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 534ms |

| 0 / 0 |
