| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Синхронизация вывода форм |
| Автор: Severyanin 17.11.2008, 04:53 |
| Доброе время суток. Возникла достаточно банальная проблема, но которая меня пока загнала в тупик пока. Я читаю с порта некоторые данные, которые я потом в базу кладу. Но с устройства приходят не все данные, а часть из них юзер вводит вручную на отдельной форме. мне необх одимо продолжить выполнение запроса и следующую итерацию цикла только после того, как юзер введет данные в текстовые поля этой второй формы. |
| Автор: mrbrooks 17.11.2008, 08:45 |
| Severyanin, Просто интересно а каково тогда время опроса девайса с которого приходит инфа? НЕ проще ли уже потом после опроса заполнить необходимые поля - а не во время? |
| Автор: REZiaMIX 17.11.2008, 08:47 |
| Точно задачу не понял , но нельзя ли сделать так: Всю инфу приходящую с девайса записывать , потом получать данные от пользователя , потом уже раскладывать по полочкам. |
| Автор: mrbrooks 17.11.2008, 09:00 |
| REZiaMIX, вот и я об том же. На мой взгляд совершенно грамотный выход. В противном случае юзер замается очень быстро что то вписывать |
| Автор: AntonChik 17.11.2008, 09:06 |
| а юзер после заполнения полей не жмет например ОК? вторая форма модально запускается? опрос порта не в отдельном потоке? |
| Автор: Severyanin 17.11.2008, 09:08 |
| нет, ак сделать не получится по двум причинам: это каждый блок такой весит килобайт, и всего могут прийти 13615 блоков. Соответственно, памяти дофига. И это учитывая то, что еще приходится хранить карту адресов этого всего, и главное - это то, что для каждого объекта, о котором приходит информация, пользователь вводит свои данные. Но даже если то все сделать, проблема все равно останется)))) форму-то также надо будеи вызывать, но только в другом цикле)) Добавлено через 52 секунды Я предлагал вводить недостающую информацию в девайс, с которого это все передается, но кристалльщик этого не сделал, так что приходится так извращаться |
| Автор: REZiaMIX 17.11.2008, 09:34 | ||
13615 * 1кб = 13615кб = ~13 мб Не думаю что с современными компьютерами это много))) В крайнем случае можно записывать на диск. Т.е приходят блоки , сохраняются . После дополнения каждого блока пользователем он кладется в базу. |
| Автор: Severyanin 17.11.2008, 09:39 | ||
AntonChik,
опрос порта, конечно, в отдельном потоке. А насчет модального отображения формы... Я и хотел бы узнать, как лучше. Я с виндовыми приложениями не работал никогда, это, можно сказать, первый раз, поэтому прошу всех ориентироваться в ответах на ламера. Юзер, конечно, жмет OK. Я уже думал, что код записи в базу повесить на обработчик клика по этой кнопке, но решения это не даст, так как в это время пойдет следующая итерация. я уже даже с мьютексами извращался - не помогло |
| Автор: mrbrooks 17.11.2008, 09:47 |
| Severyanin, камрад Во первых - рекомендую вести запись в БД по изменению данных а не валить все подряд. Во вторых - какие данные должен заносить юзверь? |
| Автор: Severyanin 17.11.2008, 09:54 | ||
Добавлено через 1 минуту и 59 секунд То есть, эти данные для каждой опоры будут уникальны |
| Автор: Severyanin 17.11.2008, 10:10 |
| А как сделать проще? |
| Автор: mrbrooks 17.11.2008, 10:29 |
как писал я и REZiaMIX |
| Автор: Severyanin 17.11.2008, 10:33 |
| на второй раз прочтения постов понял. Спасибо. как заработает - отпишусь))). или задам еще вопросы Добавлено через 2 минуты и 20 секунд но еще вопрос. пользователь тоже все это в цикле заполнять будет, и там также надо будет ждать, пока пользователь заполнит все поля формы перед следующей итерацией |
| Автор: mrbrooks 17.11.2008, 11:38 | ||
ага. для это го собственно можно использовать события и функции ожидания этих событий |
| Автор: Severyanin 17.11.2008, 12:07 |
| а как организовать этот фокус? можно пример кода? я, конечно, понимаю, что надо описать в хэндле событие закрытия второй формы и потом ждкть waitForSingleObject, но можно пример небольшой? |
| Автор: YanTsys 17.11.2008, 12:39 |
| Штрихкоды на опорах поставить не думали ? Человек таскает с собой не только прибор но еще и ноутбук с программой? У вас есть план расположения опор? Маршрут движения человека ведь заранее известен? Перед тем как идти измерять заносите в программу по плану расположения опор все их номера и характеристики что бы на месте оставалось только нажать кнопочку "Следующая опора" после чего человек сверяет номер реальной опоры и высветившейся на дисплее и идет дальше Плюс к тому если каждая опора будет выводится из хранящегося списка то можно вывести измеряющему человеку дополнительную информацию типа "на данном участке опоры меняются более часто чем на других, необходимо произвести дополнительное обследование результаты заполнить в примечании", или "результаты измерений резко отличаются от измерений произведенных в прошлый раз, проверьте настройки прибора" |
| Автор: Severyanin 17.11.2008, 12:46 |
| Народ, мое дело только программу написать, остальное - не моя забота))) киньте примерчик с событием плиз |