| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Нужен компонент для Delphi 7 |
| Автор: EKoshelev 18.9.2012, 21:48 |
| Здравствуйте. Очень хотелось бы найти компонент, реализующий циферблат и стрелку. Сейчас всё это реализовано на TImage, но такая реализация вызывает ошибку с Canvas'ом (сейчас не вспомню точно текст). Вероятнее всего во время отрисовки приходит по сетке пакет и возинкает какой-то конфликт. Где-то читал, что такое вроде бы возможно. Пробовал кидать отрисовку в поток - не помогло. Надеюсь, что если найти компонент, который бы отрисовывал то же самое, но не на TImage, то проблема будет устранена. Jedi пожалуйста не предлагайте, т. к. у меня уже стоит одна версия, старая, в ней нет того, что нужно, а менять на новую я её не буду, т. к. на неё в текущей версии программы уже многое завязано. Короче, посоветуйте пожалуйста какой-нибудь компонентик. Заранее спасибо. |
| Автор: kami 18.9.2012, 22:15 |
| http://www.torry.net/pages.php?id=295 |
| Автор: EKoshelev 19.9.2012, 08:58 |
| kami, Ну а как же этого можно избежать? Прога рисует себе, а тут пакет приходит ни с кем не согласуясь. |
| Автор: Rennigth 19.9.2012, 09:04 |
| EKoshelev, Ну Вы покажите отрисовку своего компонента, может чем поможем. А то гадаем на кофейной гуще. |
| Автор: EKoshelev 19.9.2012, 09:38 |
| Rennigth, Это не компонент, а набор процедур, написанных не очень понятно (и не мной). Всё рисование идет на TImage, и осуществляется стандартными операциями: рисование линий, дуги и вывод текста (циферблат с цифрами и стрелка). Всю эту кашу сюда вываливать не охота, т. к. ещё после моих попыток его править там вообще нифига не понять. И имена переменных не информативные. |
| Автор: Rennigth 19.9.2012, 09:51 |
| EKoshelev, Компонент то тикает сам, или по сети? Я имею ввиду синхронизацию с Вашим неким серваком он как делает? |
| Автор: kami 19.9.2012, 09:51 | ||
Ну и пускай приходит. Если приход никаким образом не отражается на отрисовке, то это не страшно. А если отражается, то должно отражаться в пределах основного потока. Нужно больше конкретики. 1. Прием пакета производится в основном потоке или нет? 2. Принятие пакета каким образом может отражаться на визуальных компонентах? (к примеру - пакет парсится и что-то там выводится на экран). 3. Используется ли в сетевом обмене что-то типа Application.ProcessMessages, Sleep и т.п.? |
| Автор: Rennigth 19.9.2012, 09:53 |
ни дай бог... при сетевом обмене... |
| Автор: kami 19.9.2012, 09:54 | ||
Кстати, в своих предположениях я гадаю на кофейной гуще, исходя из Вашего
Добавлено через 2 минуты и 28 секунд При создании своего первого большого проекта у меня так и было. И даже работало Сейчас я даже в код тех компонентов не хочу смотреть - инфаркт хватит |
| Автор: Rennigth 19.9.2012, 10:54 | ||
|
| Автор: EKoshelev 19.9.2012, 11:12 |
| Rennigth, Сам. Синхронизации никакой. kami, 1. Да, приём пакета в основном потоке. 2. Да, именно так, парсится и выводится. Собственно циферблат тоже инструмент отображения всякого такого барахла. 3. Нет, Application.ProcessMessages, Sleep не используется. |
| Автор: kami 19.9.2012, 11:26 |
| В этом случае, мое имхо - кривая реализация часиков. Ставьте какой-нибудь компонент по приведенной выше ссылке и используйте на здоровье. Основной поток основному потоку не помешает. По крайней мере без использования ProcessMessages я с таким не сталкивался |
| Автор: Rennigth 19.9.2012, 11:28 |
| EKoshelev, Ну покажи хоть что за сетевой обмен(или сам проанализируй). Если честно, информации мало... Добавлено через 2 минуты и 42 секунды Кстати, все же, что за ошибка? |