![]() |
|
![]() ![]() ![]() |
|
AndreyZ53 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: нет Всего: 2 |
Всем привет!
Интересует такой вопрос! Имеется сервер с MS SQL, имеется клиент, написанный на Delphi, который подключается к серверу. Если сервер недоступен или сеть лежит, когда пользователи запускают программу-клиента, то она открывается, зависает на некоторый промежуток времени и, так как не удалось подключиться к серверу выдает сообщение, что нет подключения к БД. Вопрос: как лучше всего сделать, когда пользователь запускает программу, появлялся бегунок (типа идет подключения, можно ProgressBar), то есть, чтобы показывалось окно программы и бегунок, который имитировал подключение, но чтобы программа сама не зависала. Это сообщение отредактировал(а) AndreyZ53 - 20.3.2014, 14:10 --------------------
https://itbases.ru/ |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
тогда нужно подключаться к серверу в отдельном потоке
|
|||
|
||||
AndreyZ53 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: нет Всего: 2 |
Akella, ммм, а не подскажите хороших примеров по созданию потоков???
--------------------
https://itbases.ru/ |
|||
|
||||
Antimol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 28.7.2007 Где: Украина, Киев Репутация: 4 Всего: 4 |
В общем вот: Многопоточность - как это делается в Дельфи.
--------------------
Лучшее спасибо это "+" к репутации. Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи.... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Потоки - тема иногда непростая для изучения и понимания, так что готовься неделю изучать и экспериментировать.
Добавлено через 2 минуты и 22 секунды а может и больше или меньше всё зависит от твоего опыта и сложности задачи |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
Проще при подключении показать окошко с анимированной гифкой (включив свойство отрисовки гифки в отдельном потоке). А подключение продолжать в основном.
|
|||
|
||||
AndreyZ53 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: нет Всего: 2 |
Bose, не совсем понял, то есть мне не надо делать свой поток на подключение?
Это сообщение отредактировал(а) AndreyZ53 - 24.3.2014, 08:45 --------------------
https://itbases.ru/ |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
Если ты хочешь в потоке проверять доступна ли БД, то надо. А если хочешь просто показывать анимированную гифку (чтобы создать иллюзию, что программа не зависла), пока основной поток подключается к БД, то можно и не делать. п.с. анимированную гифку показать намного проще чем заморачиваться с показом реального прогрессбара из потока Это сообщение отредактировал(а) Bose - 25.3.2014, 15:41 |
|||
|
||||
AndreyZ53 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: нет Всего: 2 |
Bose, Еще подскажите тогда.
У меня главная форма, на ее событии OnShow прописано подключение к БД. Перед подключением к БД я вызываю новую форму, на которой размещен анимированный бегунок, но он и сама анимация зависает на время подключения к БД (если нет связи) и так до тех пор, пока не выдаст сообщение об ошибки подключения. Как мне можно сделать, чтобы эта анимация не зависала --------------------
https://itbases.ru/ |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
Для анимации использовать TjvGifImage - со включенным свойством проигрывания анимации в потоке. Я только не помню, точно ли это был именно TjvGifImage или какой-нибудь другой компонент типа TjvAnimationЧто-нибудь. Но точно помню, что в JVCL был компонент умеющий обновлять анимацию из отдельного потока. |
|||
|
||||
AndreyZ53 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: нет Всего: 2 |
Bose, вроде бы уже получше, но вот нашел такую проблему еще, что если нет связи, то анимация выполняется в своем потоке и не зависает, все отлично. Но вот если я перекрою ее каким-нибудь окном (открою другую программу), то она опять зависает. Это уже не лечиться, без использования потоков???
Это сообщение отредактировал(а) AndreyZ53 - 31.3.2014, 07:22 --------------------
https://itbases.ru/ |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
||||
|
||||
AndreyZ53 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 22.8.2008 Репутация: нет Всего: 2 |
Bose, спасибо за помощь, плюсик Вам!
Будем смотреть дальше, либо разберемся с потоками, либо оставим как есть! --------------------
https://itbases.ru/ |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |