Ответ 1
В 1998 году я устал от TStringGrid и начал длинное путешествие вовне. Я активно использовал элементы управления виртуальными сетями, в том числе Roman Mochalev ExGridView (портирован на Delphi 2010/XE здесь) и разработчик выражает квантовое управление сеткой, и который поставляется вместе с ним, а также Virtual Tree View от Майка Лишке. Да. Это древовидный вид. Но если вы не создаете несколько уровней узлов, это также создает довольно большую виртуальную сетку.
В конце концов, ни одно из них не является совершенным. Требования к вашей заявке могут включать:
-
Печать. Если это так, я бы пошел к компонентам Developer Express, поскольку их компонент grid и другие компоненты имеют поддержку печати, встроенную в свой набор для печати.
-
Много пользовательской живописи, но нет печати. Если это так, я вернусь к VCL TDrawGrid, потому что в противном случае более сложные системы рисования акций просто будут мешать вам.
-
Сохранение простоты. Если это так, я рекомендую компонент ExGridView . Остальные решения, похоже, доставляют мне 98% пути и требуют тонны обслуживания для решения проблем, связанных с ручной распиской, печатных сбоев или чего-то еще. Если все, что вам нужно, это виртуальная сетка эпохи Windows 2000, показывающая данные из вашей модели, используйте ExGridView.
-
Может понадобиться в будущем встраивать узлы (дерево). Затем просто начните с VirtualTreeView сейчас и используйте его как сетку на данный момент и плавно добавьте древовидную функциональность позже.
В вашем случае есть еще много "дополнительных требований", которые я могу вспомнить и перечислить здесь. Но это "также" вещи, которые (или должны) диктовать ваш выбор. Ваше приложение должно работать 24/7/365.25? Ну, тогда держите это просто, и избегайте причудливых вещей, которые повредят вам позже.
Поскольку вы заявляете, что вам нужна печать, красиво выглядящая тематическая роспись, и у вас уже есть компоненты Developer Express, это было бы самым логичным выбором №1. Это стабильный, зрелый и высококачественный комплект компонентов. Для других людей, которые рассматривают этот вопрос позже, мое единственное предостережение в том, что это сложное, тяжелое решение, и не подходит для 100% всех приложений Delphi, которые "просто нуждаются в работоспособной сетке лучше, чем TStringGrid". DevEx Quantum Grid может скопировать практически каждую функцию сетки, которую вы когда-либо видели в Outlook, например, включая функциональность "group by".