Задача такая:
У меня сделано редактирование только одной страницы текста (1 страница - 20 строк), но возникает задача редактировать текст, состоящий из более 20 строк. Для этого лучше использовать динамическую память. Прошу помочь мне советом как это реализовать...
Прикрепленные файлы
ED2.PAS ( 5.89 килобайт )
Кол-во скачиваний: 269
type ptekst = ^tekst;и везде, где встречается обращение к массиву, пишешь вместо arr[i,j] - arr^[i,j]
...
arr : ptekst;
...
begin
getmem(arr,kolst*kols);
Editor;
freemem(arr,kolst*kols);
end.
Сделал помоему как ты сказал...только не могу понять как перемещаться по динамической памяти на следующую страницу.
Прикрепленные файлы
ED2.PAS ( 5.98 килобайт )
Кол-во скачиваний: 271
Рекомендую все-таки отображать не по страницам, а по строкам, т.е. если на экран умещается, скажем, 20 строк, а отобразить надо с 134-й, то отображаются строки с 134-й по 153-ю. Т.е. нужно дополнительно хранить (и пересчитывать, анпример, при нажатии PgUp/PgDn или смещении курсора за границу экрана) номер первой отображаемой строки.
И от того, динамическая это память иои статическая, ничего не меняется.
Так то конечно и со статической памятью я не против, но стэк не резиновый..а директива {M$} ничем не помогает..
Тогда я не понял в чем у тебя проблемы.
Со стеком и статической памятью ты все правильно пишешь. Статическй массив в программе заменил на динамический. Что же еще нужно?
Я переделал как надо, теперь нет проблем. Спасибо за советы!
Только не могу понять как узнать количество не пустых строк