Страница 1 из 1

не обновляется текстовое поле

СообщениеДобавлено: Пн апр 28, 2008 12:09
Chel1
суть проблемы вот в чем. есть числовая переменная и есть текстовое поле. каждый раз, когда меняется значение переменной, должно меняться ее значение в поле. все это происходит по действиям пользователя. проблема в том, что хоть переменная и меняется всегда (то есть меняется правильно) отображение в текстовом поле нового значения происходит не всегда :-(

пример: переменная последовательно меняется скажем так:

10, 20, 30, 40, 50, 60

при этом в поле может вывестись что-то вроде:

10, 20, 30, 30, 30, 60

подскажите в чем может быть проблема!

СообщениеДобавлено: Пн апр 28, 2008 17:53
Berezkin
2Chel1: так сложно сказать, ты хоть код бы весь привел

СообщениеДобавлено: Вс май 04, 2008 11:13
Chel1
код привести сложно, но уточнить могу :)

есть программа на Delphi. Есть флеш-мульт (встроен в делфи через ActiveX компонент) Программа на дельфи открывает сокет и слушает его. программа на флеш открывает соединение с сокетом и начинается обмен данными (в обе стороны). при получении данных от дельфи по сокету, программа должна их отобразить.

проблема в том, что отображает через раз (хотя переменная во флеше, в которую перед отображением записываются данные обновляется всегда!). запись в переменную и вывод данных на экран - 2 соседние инструкции. кода между ними другого нет. то есть происходить должно и запись переменной, и ее отображение железно).

такое впечатление, что флеш тормозит жутко и через раз срабатывает перерисовка экрана.

если быть до конца точным, то не через раз, а как-то вообще рандомно :) может отобразить, потом еще раз отобразить, потом раз шесть не отобразить, потом еще раз отобразить :)

почему известно, что железно обновляется переменная? потому что выводится на экран сумма предыдущих чисел, полученных по сокету. сумма, если она выводится, всегда верная!

СообщениеДобавлено: Вс май 04, 2008 14:03
Berezkin
Я дельфи не знаю совсем... так что навряд ли смогу помочь. Да и с ActiveX во флэше я не работал никогда... А уж без кода так вообще анрил

СообщениеДобавлено: Вс май 04, 2008 15:11
Muerto
Я дельфи мало-мало знаю. Но исходник треба.

СообщениеДобавлено: Пн май 05, 2008 9:10
Kat
Chel1 писал(а):такое впечатление, что флеш тормозит жутко и через раз срабатывает перерисовка экрана.


учитывая, что данные приходят по сети- это очень даже возможно.
может установить интервал задержки для инструкции вывода на экран? в js это setInterval(), наверное и во флэш подобное должно быть.

СообщениеДобавлено: Пн май 05, 2008 14:15
Chel1
всем спасибо за ответы :)

проблему решил. оказалось что в самой программе в фоновом режиме выполняется множество различных операций (она многопоточная и каждый поток чем-то занят). флеш был встроен в само приложение и поэтому похоже у него не было всегда времени на себя :)

я разделил флеш и дельфи на 2 отдельных .exe файла и все заработало как часы.

2Kat: оба приложения работают на одном компе

я кстати чего только не перепробовал :) setInterval, разделение на отдельные временные шкалы процесса отрисовки и работы с сокетом, работа в одной временной шкале, но разных кадрах, циклически повторяющихся, присвоение полю значение по свойству .text, по имени переменной. и все это в различных сочетаниях + еще кое-что.

если бы знал что надо их просто разделить - сэкономил бы кучу нервов и дни опытов