|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
Запомнить текущее состояние компонентов (для таймера)17.04.2011, 11:37. Показов 3663. Ответов 18
Метки нет (Все метки)
Возможно ли? Поясню: Есть, допустим, StringGrid1 с двумя строками, вторая пустая, есть StringGrid2, допустим, тоже с двумя строками, вторая пустая, есть ValueListEditor - тоже пустой
Теперь - есть таймер, который через каждую секунду принимает данные с сервера, и раскидывает их по этим компонентам. Если тупо в таймер вогнать прием с сервера, то выйдет фигня. Надо, что бы компоненты, так сказать, стирали из себя предыдущие поступившие данные, и вписывали новые. Или может есть более простое решение? p.s. И так, что бы скроллы не шалили)
0
|
|
| 17.04.2011, 11:37 | |
|
Ответы с готовыми решениями:
18
Запомнить состояние двухсот CheckBox Запомнить состояние строк
|
|
|
|
| 17.04.2011, 14:57 | |
|
можно использовать для всего этого ReplaceString()
0
|
|
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
| 17.04.2011, 15:58 [ТС] | |
|
эм. Быстрое гугление что-то ничего интересного не показало, маны по ф1 не работают)) Можно поподробнее про эту функцию?
0
|
|
|
|
||||||
| 17.04.2011, 16:08 | ||||||
0
|
||||||
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
| 17.04.2011, 16:57 [ТС] | |
|
Не, чет это не то. У меня с сервера приходит инфа, забивает компоненты. Начальное состояние, к примеру, стрингГрида - две строки (3 столбца). Когда с серва инфа пришла, то она показывается в стрингГриде. К примеру это еще плюс 4 строки. В итоге видим СтрингГрид с шестью строками. Таймер установлен на 1 сек - через секунду снова посылается запрос, снова идет инфа, снова в стрингГрид - но в нём уже забита инфа. Вот вопрос - так как не хочется прописывать начальное состояние стрингГрида в ноль, через цикл, чтобы через секунду он очищался и принимал новые данные , то, может, есть решение проще и красивее?
И вдобавок получается, если очищать, например, какой-нибудь ValueList, то скролл всё время в верх поднимается, и каждую секунду так и будет - тоже не очень хорошо.
0
|
|
|
|
||||||
| 17.04.2011, 17:10 | ||||||
|
зачем очищать ? можно просто менять запись, и не объязательно через StringReplace
0
|
||||||
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
| 17.04.2011, 17:21 [ТС] | |
|
Не подходит
Если строк придет меньше, чем было, то лишнее останется.
0
|
|
|
|
|
| 17.04.2011, 17:28 | |
|
а сравнить RowsCount с тем, что пришло, папка с мамкой не научили ?
0
|
|
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
| 17.04.2011, 17:34 [ТС] | |
|
Так что-то совсем мудрено будет... особенно с моим личным парсером
![]() Добавлено через 1 минуту Хотяяяяя.... по сути то мне надо всего два стрингГрида обновлять. Ох уж этот быдлокод =/
0
|
|
|
|
||
| 17.04.2011, 17:38 | ||
|
2. не обижай код - уйдет в запой .
0
|
||
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
| 17.04.2011, 17:48 [ТС] | |
|
ну 1 - да, согласен, я изначально чуть не так выразился. А 2 - в принципе по таймеру циклом проходиться по стрингГрид - делать две строчки, и занулять их. Потом записывать туда данные. На данный момент, надеюсь, работающий вариант. А вообще лучше посижу поразбираюсь, может чего еще в голову придет
0
|
|
|
|
||||||
| 17.04.2011, 17:53 | ||||||
|
это
0
|
||||||
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
||||||
| 17.04.2011, 18:45 [ТС] | ||||||
|
Таким способом я и буду делать.
Добавлено через 33 минуты Блин, честно говоря, фигня какая-то получается совсем, эх... Надо как-то по другому делать Короче, приведу явный пример, как делаю я. Возможно это совсем не правильно. В общем раньше у меня было так:
И, допустим, если в другом стрингГриде если выбрать ячейку, то через секунду выберется станадртная первая ячейка. Или если переместить столбцы, то через секунду они так же вернутся так, как были раскиданы вначале. Соответственно, если СкроллБар переместить вниз, то через секунду он снова скакнёт наверх в исходное положение. Вот какое решение можно сделать, что бы всё динамически обновлялось, но при этом не терялись позиции элементов? Мне кажется, у меня что-то крутится в голове, но никак не могу собрать мысли все воедино, потому что за прогой несколько дней подряд с утра до вечера сижу)) Ох, надеюсь, нормально объяснил)
0
|
||||||
|
|
|
| 17.04.2011, 18:59 | |
|
List out of bounds - в списке нет записей
1
|
|
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
||||||
| 17.04.2011, 19:36 [ТС] | ||||||
|
Самое смешное, что тот код, который я привел выше, прекрасно работает. Сложности возникают с этим (он расположен сразу после кода, что я привел выше):
p.s. Да, код тут ппц какой)
0
|
||||||
|
|
||||||
| 17.04.2011, 19:51 | ||||||
0
|
||||||
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|||||||||||
| 18.04.2011, 11:53 [ТС] | |||||||||||
|
Не, так уже делал, не помогало. Я думаю, сделать проверку, если многократно посылать команду и принимать буфер, что получится, не присылает ли он чего лишнего, если не присылает, то проверку иф (str!="") создаем лист gamers. Ох, чето еще какие-то мысли были, но вылетели. Ща, в общем, попробую всё.
Добавлено через 14 часов 43 минуты В принципе получилось сделать, что бы не вылетало ошибок, сделав вот так:
Теперь не знаю, как такое побороть: при каждой секунде таймера все фокусы, все скроллы и колонки таблиц возвращаются в исходное положение. Само собой не всех компонентов, а только тех, которые в таймере висят. Добавлено через 41 минуту точнее нет, не так сделал, вот так:
Добавлено через 1 минуту Что-то я вообще на грани паники блин =/
0
|
|||||||||||
|
|
|
| 18.04.2011, 17:18 | |
|
наверное, потому, что у тебя kostil всегда <6
0
|
|
|
44 / 2 / 0
Регистрация: 12.11.2009
Сообщений: 40
|
|
| 18.04.2011, 19:10 [ТС] | |
|
по идее если на сервере будут игроки, то там должна быть строка, к примеру 3 46 "nickname". Хм, хотя появился еще вариант - проверить длину строки, что после \n идет не через костыль))
0
|
|
| 18.04.2011, 19:10 | |
|
Помогаю со студенческими работами здесь
19
Текущее состояние дел
текущее состояние сокета
MediaElement. Не определяет текущее состояние Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|