powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подгрузка данных после открытия формы
25 сообщений из 52, страница 1 из 3
Подгрузка данных после открытия формы
    #39965775
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите событие которое идет после formshow. Нужно после того как форма загрузилось, подгрузить данные на форму, ничего не нажимая
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965781
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurtНужно после того как форма загрузилось, подгрузить данные на форму, ничего не нажимая

Нормальные люди так не делают, но если очень хочется - запускаете в OnShow поток, который
и подгрузит данные. Ещё чуть менее вменяемо - PostMessage() этой форме, в обработчике
которого и будет загрузка данных. Уродливое бельмо вместо формы yf dc` dhtvz pfuheprb
гарантировано. Совсем невменяемо (но нубы так и делают) - OnActivate.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965786
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965787
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
может быть у вас есть пример потока в FormShow ?
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965795
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr, OnCreate идет перед FormShow
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965796
neteurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

а лучше PostMessage, как его можно использовать ?
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965810
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю ещё один вариант до кучи: TTimer.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965812
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настоящие гуру извращений делают так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TFmMain.FromShow(Sender: TObject) 
begin
  ...
  SetTimer(Handle, TIMER_ID_LOGIN, 100, nil);
end;

procedure TFmMain.WMTimer(var Msg: TWMTimer);
begin
  KillTimer(Handle, Msg.TimerID);
  case Msg.TimerID of
  ...
    TIMER_ID_LOGIN:
      acConnect.Execute;
  ...
end;


Но если загрузка длительная, то явно лучше поток.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965815
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurtPostMessage, как его можно использовать ?
Вы не поверите, но у него есть только один способ использования: описанный в
документации. Ни вертеть, ни полизать, ни на хвост нанизать - не получится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965837
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы не делаете некие операции с формой на OnCreate или на OnShow, значит, в эти моменты вам чего-то не хватает. Нужно понять, чего именно не хватает, и в какой момент будет хватать. От этого зависит и метод "обхода".

Что-то полезное происходит при обработке следующих, уже стоящих в очереди событий? PostMessage отправит вас в конец очереди, когда она к вам подойдет, почва уже будет подготовлена. Вместо PostMessage можно прокрутить очередь через Application.ProcessMessages, но это плохой способ. Однако, если должна пройти цепочка событий, каждое из которых вызывает следующее через постановку в очередь сообщений, такой метод будет бесполезен.

Что-то полезное приходит извне, и надо только его дождаться? Тогда таймер, как показали выше. Интересно, как вы будете определять задержку таймера, экспериментально?

Зачем запускать параллельный поток, который должен будет дергать визуальные компоненты из основного, лично мне непонятно. И, главное, что именно тот поток будет ждать, чтобы выполнить свою работу? Если по времени, то для этого и обычного таймера достаточно.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965850
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyanskyЕсли вы не делаете некие операции с формой на OnCreate или на OnShow, значит, в эти
моменты вам чего-то не хватает.

Обычно всё проще: операции загрузки данных длительные и на это время приложение не
отвечает, а вместо формы на экране отвратительное белёсое пятно, которое никому не нравится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965854
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А... Ну тогда, если загрузка длительна, PostMessage мало поможет, разве что перед "заморозкой" кнопки прорисуются, все равно неприятно.

Я бы все-таки не запускал отдельный поток, лишнее это, а отправился в конец очереди и там на своем сообщении грузил бы потихоньку данные, вызывая через разумные интервалы ProcessMessages, чтобы глазу пользователя было приятно. И форма живет, и данные грузятся.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965857
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyanskyPostMessage мало поможет, разве что перед "заморозкой" кнопки прорисуются, все равно
неприятно.

Среднему дельфину и этого хватает.

shalamyanskyгрузил бы потихоньку данные, вызывая через разумные интервалы ProcessMessages

Чаще всего загрузка данных сводится к одному вызову Query.Open, так что облом с разумными
интервалами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965861
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дельфин - это хорошо :)

Можно влезть с ProcessMessages в Query.OnRow или Query.OnFetch, что там у них есть, но это уже перебор, пожалуй.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965862
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyanskyчто там у них есть

Ничего там у них нет. Да и до фетча ещё не доходит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965866
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа должна стартануть мгновенно. И только по запросу юзера ушастого что-то тянуть из омерик вашых.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965867
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPC
Программа должна стартануть мгновенно. И только по запросу юзера ушастого что-то тянуть из омерик вашых.
+100
Открывать надо пустую форму с кнопкой "Обновить" ("Посчитать" или что там долгим запросом делается).
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965873
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Тыкаете Вы в ссылку, а Вам открывается браузер с пустой страницей. И кнопкой
"обновить". Супер дизайн!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965875
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Ага. Тыкаете Вы в ссылку, а Вам открывается браузер с пустой страницей. И кнопкой
"обновить". Супер дизайн!

Писателей арбузов тоже стоит научить не грузить все закладки при старте разом.
Открыл закладку (нажал кнопку обновить), тогда пусть и грузится. Плюс текущая - автоматом.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965876
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Ага. Тыкаете Вы в ссылку, а Вам открывается браузер с пустой страницей. И кнопкой
"обновить". Супер дизайн!


Да, супер. Много лучше, чем конфигуратор 1с, который тянет полтора гига конфигурации с удаленного сервака при запуске. Которая, к слову, мне совсем не нужна.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965877
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Умолчально, по задумке создателей инструмента, сценарий делфи-приложения таков:

1. Все, что нужно и можно, грузится на OnCreate (откуда вы взяли OnShow? Show и Hide случаются в другие моменты, не надо лишний раз ничего трогать). Форма в это время не видна, пользователь ищет её на лужайке Майкрософта, но не находит.

2. Потом случается Show, и форма, полностью загруженная и прекрасная, окрывается взору.

Такая задумка. Если шаг 1 стараниями программиста стал невозможно долог, перед ним запускают другую форму попроще, с логотипом, например "Borland", чтобы как-то успокоить отчаявшегося уже было пользователя и отвлечь от лужайки. Не бог весть что, но лучше пустышки с кнопкой "Приступить к работе".
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965883
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
Умолчально, по задумке создателей инструмента...


Мой сценарий:

OnCreate инициирует создание DataModule для подключения к БД, который в свою очередь инициирует создание PasswordDialog 3 раза (в случае некорректного доступа). И даже после 3-х неудачных попыток MainWindow таки все равно создается с активном пунктом меню "Подключиться", а равно с её хардлинком на ToolBar`е, но с отключенными остальными пунктами меню, кроме "Настройки", где можно исправить данные для подключения.

В случае успешного коннекта становятся активными все пункты меню, и первоначальная страница выбора действий пользователя.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965886
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neteurt
Нужно после того как форма загрузилось, подгрузить данные на форму, ничего не нажимая

Асинхронная загрузка данных - не самая простая в реализации концепция. На том уровне владения инструментом, на котором Вы задаёте такие вопросы, лучше с ней не связываться.

Сделайте базовый класс для форм приложения и сделайте в нём виртуальный метод, скажем, LoadData. В наследниках переопределяйте этот метод, делая подгрузку данных, а в базовом классе вызывайте его с OnShow. Тогда сейчас у Вас будет всё верно работать, а потом Вы легко сможете поэкспериментировать с переносом вызова LoadData в другие места и реализовать желаемый асинхронный функционал.

YuRock
Открывать надо пустую форму с кнопкой "Обновить" ("Посчитать" или что там долгим запросом делается).

Открывать надо так, как удобно пользователю. Вы же предлагаете заранее назвать себя криворучкой и заставить пользователя делать кучу тупых лишних действий.

shalamyansky
Умолчально, по задумке создателей инструмента, сценарий делфи-приложения таков:

Можно узнать, где Вы достали хрустальный шар, с такой точностью показавший Вам замыслы создателей инструмента?
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965889
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хороший сценарий. Но он все равно не решает проблему длительной инициации в случае, если авторизация прошла успешно с первого раза. Более того, во время заморозки на экране, скорее всего, будет еще болтаться уже ненужный диалог аутентификации, если не позаботиться его убрать специально. Ощущение у пользователя будет, что что-то не так с коннектом, хотя на самом деле уже идет загрузка.
...
Рейтинг: 0 / 0
Подгрузка данных после открытия формы
    #39965891
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPC
Мой сценарий

Странноватое смешение стилей, начинается с одного варианта, а заканчивается другим. В этом случае и проще, и удобнее сразу показывать главную форму и в ней на старте выбрасывать диалог аутентификации.
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Подгрузка данных после открытия формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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