![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод длинной строки [D6, D7, WinXP]
mishapost © (2004-10-27 23:17:00)Помогите!
Решаю лабу. По условию надо массив (array of integer) на 100000 элементов. Вывести на экран в одну строку разделяя цифры пробелами.
Как это сделать.
Пробовал RichEdit так он собака на каком-то n-ом элементе переходит на вторую строку. Обязательно должна быть полоса прокрутки (и только горизонтальная больше никакая)
SergP (2004-10-28 02:03:00) [1]Или напиши нечто типа своего скролбара с большим кол-вом позиций
SergP (2004-10-28 02:01:00) [2]
> И упрись в ограничение скроллбара на 65,536
Делай 1 позиция скролбара = 2 позиции для массива. тогда впишешься
Defunct (2004-10-27 23:54:00) [3][11]
угу
график однозначно лучше подходит для отображения 100k чисел.
Игорь Шевченко (2004-10-27 23:50:00) [4]Defunct © (27.10.04 23:48) [10]
> Но и эта проблема решается
Решается. Ерундой не заниматься, например, выводя такое количество чисел на экран.
Defunct (2004-10-27 23:48:00) [5]Игорь Шевченко © (27.10.04 23:38) [8]
забыл об этом..
Но и эта проблема решается: делим на какой-то коэффициент (например на кол-во символов, которые помещаются на экране), чтобы не привысить 64k позиций скрола.
sniknik (2004-10-27 23:41:00) [6]100000 * 7 (6 по максимуму символов на цифру + пробел) ~ 684кб. не дотягивает до 2гб (такое вроде ограничение у длинных строк?)
все в строку влезет с гарантией, а заботится о прогрутке/отрисовке не нужно. и для скролбар само шаги просчитает.
Игорь Шевченко (2004-10-27 23:38:00) [7]
> Посчитай количество десятичных знаков всех чисел прибавь
> 10000 (кол-во пробелов между числами). Задай ScrollBar'у
> в качестве макс значения то что получится
И упрись в ограничение скроллбара на 65,536
"Because the messages that indicate scroll bar position, WM_HSCROLL and WM_VSCROLL, are limited to 16 bits of position data, applications that rely solely on those messages for position data have a practical maximum value of 65,535 for the SetScrollRange function's nMaxPos parameter. "
Defunct (2004-10-27 23:34:00) [8]mishapost (27.10.04 23:17)
Может график нарисовать с масштабированием?
А числа не нужно выводить в RichEdit.
Посчитай количество десятичных знаков всех чисел прибавь 10000 (кол-во пробелов между числами). Задай ScrollBar'у в качестве макс значения то что получится. Формируй строку для вывода на экран в зависимости от позиции ScrollBar'a по событию ScrollBar.OnChange. Саму строку выводи хоть на Canvas формы.
sniknik (2004-10-27 23:31:00) [9]2 элемента возьми. один TScrollBox и на него чего нибудь (TLabel/TEdit) положи...
и вся лаба (мне бы в свое время такие ;о))))
Rouse_ (2004-10-27 23:29:00) [10]Рисуй на канвасе не жалея памяти на хранение растра :))
mishapost (2004-10-27 23:27:00) [11]А это вы у препода спросите который эту лабу задал
Anatoly Podgoretsky (2004-10-27 23:26:00) [12]А мышка не расплавится?
mishapost (2004-10-27 23:25:00) [13]Не главное чтоб все видеть на экране надо вывести строку с прокруткой прокрутку двигаешь и все просматриваешь
Игорь Шевченко (2004-10-27 23:23:00) [14]
> По условию надо массив (array of integer) на 100000 элементов.
> Вывести на экран в одну строку разделяя цифры пробелами.
А где такой экран взять ?