Я хочу это:
после нажатия на кнопку отобразить дочернюю форму с имеющейся на ней прогресс баром и показывать пополнение таблицы строк. Для отладки и теста составил вот такое приложеньице: [url=www.hiasm.hexshock.com/xf/load.php?a=3853]code_45[/url]. Эту проблему разрешил Dilma и Tad, вот в этом коде. code_70 , он полностью меня устраивает: Dilma рекомендует [url=www.hiasm.hexshock.com/wiki.php?wiki=Application]Application[/url] и в коде используется цикл. Но у меня, на большом проекте не работает. Я стал разбираться почему и обнаружил небольшой глучок с модальностью. Сейчас Galkov подсказал как этот глючок убрать: использовать вот такую модальную форму
Add(ChildFormEx,14349662,91,252)
{
}
BEGIN_SDK
Add(EditMultiEx,452557,3,3)
{
}
Add(MainForm,5465701,35,105)
{
Left=35
Top=105
}
END_SDK
Это было первое что я хочу. Вот второе:
- После чего должен обязательно выполняться Application, что-бы на дочерней форме было все видно?
- Как, отказавшись от формы, вывести курсор Wait в начале работы по списку и убрать его в конце работы?
Предлагаемое тобой решение, в коде code_49, я не стал использовать потому что:
Использование потоков в таких случаях спасет ситуацию, но оно не будет эффективным. Например, ваша программа открывает большой файл и, зная, что на это уйдет некоторое время, вы выводите табличку с надписью: "Ждите...". Однако надпись может и не успеть отрисоваться, тогда и нужно вызвать один раз метод doProcessMessages, а затем спокойно открывать файл. Совершенно очевидно, что использование отдельного потока в данном примере только усложнит программу и увеличит время для загрузки файла.
Вот у меня такая точно ситуация: программа проверяет большой список компьютеров, попросту их пингует, результаты пинга записывает в таблицу строк. Когда компьютеров мало - этот процесс проходит быстро, а когда много (я поэтому и проверяю на работе, по большому, 100 позиционнуму списку) процесс идет медленно, т.к. время затраченное компонентом на получение отрицательного результата (т.е. когда компа нет в сети, он выключен к примеру) значительное и притормаживает весь процесс). Вот поэтому мне кажется использование Application предпочтительнее чем потоки, предложенные тобой.
По поводу вины формы, извините, моя лирика. Ни в чем она не провинялась. Просто не могу никак заставить с этой формой корректно работать приложение, вот и злюсь. Проект большой и те куски кода, которые описаны выше - это не мое приложение, а только малая толика. Вроде бы восстанавливаю все связи - как и в "чистом" коде (который работает, я уже говорил, так как надо) все равно форма в моем приложении не отображается. Вернее не отображается все, кроме заголовка формы. Не виден бар, текст на форме, кнопка "Отмена". А ведь это последнее из крупных недоработок. Остальные недоработки мелкие, они позволят выпустить приложение и с ними (ну например нет реакции если ничего не ввести в поле "Время между проверками"). Я начал этот вопрос еще в старом форуме поднимать, но не добил...