PDA

Просмотр полной версии : Добавление строк в текстовое поле из ST



@ND
13.04.2016, 13:32
У меня есть визуализация, на которой есть текстовое поле.
Дак вот я хочу добавлять туда по ходу работы программы строки, коих достаточно много.
Пока не получается придумать нормальный инструмент для этого.
Хочу создать эдакий вариант отладочной консоли.

Может кто то уже делал что то подобное?


Работаю с СПК207-03-CS-WEB
КДС 3.5 SP5 Patch 5

Евгений Кислов
13.04.2016, 14:00
У меня есть визуализация, на которой есть текстовое поле.
Дак вот я хочу добавлять туда по ходу работы программы строки, коих достаточно много.
Пока не получается придумать нормальный инструмент для этого.
Хочу создать эдакий вариант отладочной консоли.

Может кто то уже делал что то подобное?


Работаю с СПК207-03-CS-WEB
КДС 3.5 SP5 Patch 5

Возможно, для отображения консоли таблица с одним столбцом подойдет? Каждая строка - отладочная команда.

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

@ND
14.04.2016, 07:57
Да, это работает, но у этого метода есть один существенный недостаток:
при работе с консолью, необходимо, чтоб последняя запись была всегда видна, на первом месте тобишь.
Для чего приходится делать сдвиг, и чем больше записей в таблице, тем более ресурсозатратный получается сдвиг.

Евгений Кислов
14.04.2016, 08:09
Да, это работает, но у этого метода есть один существенный недостаток:
при работе с консолью, необходимо, чтоб последняя запись была всегда видна, на первом месте тобишь.
Для чего приходится делать сдвиг, и чем больше записей в таблице, тем более ресурсозатратный получается сдвиг.

Может, просто прокручивать таблицу по мере поступления новых данных? У нее есть параметр Переменная для выбранной строки.

@ND
14.04.2016, 08:43
А что делать когда мы дойдём до конца массива?

Евгений Кислов
14.04.2016, 09:26
А что делать когда мы дойдём до конца массива?

Начинаем перезаписывать с начала, ну т.е. в стиле кольцевого буфера.

Очевидно, в этот момент мы перестанем видеть предыдущие команды - не знаю, насколько это критично. Можно этого избежать, если собрать свою таблицу из текстовых полей - тогда можно будет контролировать, что отображается в каждой строке.

@ND
14.04.2016, 09:41
Начинаем перезаписывать с начала, ну т.е. в стиле кольцевого буфера.

Очевидно, в этот момент мы перестанем видеть предыдущие команды - не знаю, насколько это критично. Можно этого избежать, если собрать свою таблицу из текстовых полей - тогда можно будет контролировать, что отображается в каждой строке.

Предыдущие команды нужно видеть.
А на счёт контроля, по сути это всё так же будет ресурсозатратный сдвиг.
По крайней мере для такого массива ar: ARRAY[0..3,0..10000] OF WSTRING;