C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Рисование скролируемой области, Как правильно обрабатывать?
Schumi
Отправлено: 17.10.2005, 14:15


Машинист паровоза

Группа: Участник
Сообщений: 206



Стоит такая задача — есть некая таблица — к примеру фиксированное число столбцов (а может и нет) и различное число строк. В ней отражаются определенные данные. Я хочу рисовать ее на paintbox.
Если человек скроллирует таблицу, то соответственно я просто смотрю по scrollbox позицию и относительно них рисую. И тут сразу возникает вопрос — а как перерисовывать — ведь, если будут размеры ячеек малые и соответственно их будет много, то ведь возникнет эффект мерцания, да и не так это будет быстро.
Но в целом алгоритм понятен. А вот если человек захочет перетащить какую-нибудь строку/столбец — то, допустим, он нажал мышку, держит ее и начинает двигать, то по всем правилам должна появиться некая "линия", по которой пользователь сможет судить о "потенциально" новом месте строки/столбца. И при каждом перемещении, нужно знать старую позицию — ее затирать, и рисовать на новом месте. Как-то получается геморно. Или я преувеличиваю?
gvg
Отправлено: 17.10.2005, 14:44


Машинист паровоза

Группа: Участник
Сообщений: 222



То, что вы описали, уж очень смахивает на StringGrid. Стоит ли самому что-то выдумывать?
olegenty
Отправлено: 17.10.2005, 14:54


Ветеран

Группа: Модератор
Сообщений: 2412



а ты задайся вопросом, как, например, TDBGridEh перерисовывается? а ещё лучше — посмотри исходники.
Schumi
Отправлено: 18.10.2005, 19:15


Машинист паровоза

Группа: Участник
Сообщений: 206



QUOTE
То, что вы описали, уж очень смахивает на StringGrid. Стоит ли самому что-то выдумывать?

Ну как бы сказать — если ширина оказывается пикселей так 4 и данные — это некоторые графические элементы, то учитывая быстродействие, то наверное, стоит выдумывать.

QUOTE
а ты задайся вопросом, как, например, TDBGridEh перерисовывается? а ещё лучше — посмотри исходники.

Хорошо, завтра же задамся

Вернуться в Вопросы программирования в C++Builder