Возможный дубликат:
Управление Delphi, которое может имитировать список дополнений|расширений Firefox?
Я хотел бы создать собственный элемент управления ListBox. Это может выглядеть как загрузки Firefox
но вместо того, чтобы жестко кодировать пользовательский рисунок для любого конкретного макета, я хотел бы разрешить определение макета отдельно. Позвольте мне объяснить, список будет иметь опубликованное свойство Макет: TWinControl Идея состоит в том, чтобы разработать макет в панели say, поэтому для приведенного выше примера это будет выглядеть примерно так:
Затем в customdraw ListBox будет использоваться рисование панели. Конечно, каждая строка будет отображать данные для соответствующего элемента. Таким образом, элементы управления будут DbAware, а recordIndex будет корректироваться для каждого розыгрыша. (На самом деле я не использую элементы управления DBAware, я использую пользовательские привязки данных, но это тот же принцип)
Кто-нибудь уже делал что-то подобное? Думаете, это хорошая/плохая идея?
Я начал писать тестовое приложение и отредактирую этот вопрос, чтобы добавить конкретные вопросы реализации,
Я надеюсь использовать только 1 экземпляр панели для всех строк, он не должен быть виден сам по себе за пределами списка.
До сих пор я пытался использовать Panel.PaintTo()
в ListBox OnDrawItem
, это в основном работает, но только если Panel является родительской и видна в другом месте формы. Могу ли я сделать панель невидимой, но при этом использовать ее для рисования? Как бы вы это реализовали?
DbCtrlGrid
? - person Cosmin Prund   schedule 14.04.2011