Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.10;
Скачать: CL | DM;

Вниз

Програмирование скролинга (выбор алгоритма)   Найти похожие ветки 

 
Skymen   (2007-10-31 11:22) [0]

Пишется компонент-редактор текстово-графический - стандартные компоненты типа Мемо и RichEdit не подходят - специфика задачи.
Отрисовка данных реализована, но встал вопрос как лучше организовать скролинг:
- либо вычислять какая часть будет видима и отрисовывать только ее (+функции редактора очевидно будут проще, - сложные вычисления какая же часть видима и реализация плавного скролинга)
- либо рисовать все сразу на длинном Canvase и засовывать в Scrollbox - (- функции редактора усложняются пересчетом экранных координат в координаты объектов и символов всего изображения, +scrolling фактически на шару, - боюсь сильного падения скорости при больших документах и расход памяти опять же)
Вопрос: Есть ли еще варианты? Есть ли у кого-нибудь подобный позитивный или негативный опыт? Интересно как скролинг реализован в Microsoft Word - может кто знает?


 
homm ©   (2007-10-31 11:26) [1]

> [0] Skymen   (31.10.07 11:22)
> Интересно как скролинг реализован в Microsoft Word - может кто знает?

Ну ясно - понятно, что там десятки страниц перерисовываются на одну длинную канву каждый раз при перерисовки одного окошка…
Если что это стеб…


 
clickmaker ©   (2007-10-31 11:40) [2]


> либо вычислять какая часть будет видима и отрисовывать только
> ее

да
плюс использовать memory-mapped bitmap, рисовать туда, а потом его - на канву



Страницы: 1 вся ветка

Текущий архив: 2008.02.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
15-1199907823
oxffff
2008-01-09 22:43
2008.02.10
DPL и Unicode


6-1179909476
allucard
2007-05-23 12:37
2008.02.10
Как нажать кнопку в WebBrowser и выбрать раскрыв. список


2-1200425171
DmT
2008-01-15 22:26
2008.02.10
Как написать проверку на возможность перезаписи файла


2-1200304108
Washington
2008-01-14 12:48
2008.02.10
Перехват вызова контекстного меню


2-1200246721
Steep
2008-01-13 20:52
2008.02.10
Ошибка "I/O error 104"