Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Отображение данных из БД в виде Cards


Автор: KotBegemotKlg 1.8.2008, 16:52
Добрый день! Проблема вот в чём: нужно отображать данные в виде Cards (как на прикреплённой картинке). Сейчас для этого используется DBCtrlGrid. Но! Компонент весьма тормозной, именно в части графики. При любом тычке по нему он полностью перерисовывает каждую панель (а их пара сотен) и это вызывает ощутимый подтормоз :(((
Пробовал и cxGrid из QuantumGrid и AdvCardList из библиотеки TMS - всё не то, хотя бы потому, что мне надо отображать данные сначала в строках, а потом в столбцах! То есть по горизонтали! А все упомянутые компоненты отображают их только по вертикали! :(
Сейчас на DBCtrlGrid положена TPanel и три DBLabel. DBLabel'ы непосредственно связаны с полями БД. При инициализации формы панель, размещённая на DBCtrlGrid делается на 10 пикселей меньше чем размер панели DBCtrlGrid и размещается по центру, чтобы оставалось пространство вокруг, которое для выбранного элемента окрашивается в SelectedColor - то есть получается рамка вокруг выбранного элемента. На OnPaintPanel из таблицы БД читаются цвета для каждой из трёх DBLabel и цвет фона (которым будет окрашена Panel) и всё красится.

Замену DBCtrlGrid ищу уже давно, и пока никак... Тут вроде взгляд упал на VirtualTreeView - может кто использовал этот компонент для отображения не древовидной иерархической структуры, а для чего-то подобного моей задаче? Или может какие-то компоненты сможете посоветовать для замены DBCtrlGrid ?

Картинка:
user posted image

Отвечаю сам себе, и тем, для кого подобная задача может быть актуальна. Гораздо больше VirtualTreeView для данной задачи подходит компонент EasyListView. То что надо. Правда как и в случае с VT руками придётся многое делать, но, думаю результат того будет стОить smile Внешнего вида нужного добился без проблем, теперь буду "связывать" с базой...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)