Подтвердить что ты не робот

Рекомендации по наиболее полезной замене Delphi TStringGrid (Grid)

Одной из слабых областей Delphi являются сетки (например, TStringGrid), где, хотя она выполняет хорошую базовую работу, становится труднее, когда вам нужно распечатать ее или настроить ее внешний вид. Я использовал его в течение примерно 15 лет, таким образом, он довольно встроен в мои приложения, и со временем у меня есть домашние решения для преобразования TGrid-RTF (для печати через MSWord), а TDrawGrid используется для еще большей настройки. Мои решения (по-прежнему) должны работать как в Delphi 7, так и в Delphi XE. Как бы то ни было, ни одна из моих гридов не привязана к БД, они все заполнены ячейкой в ​​коде.

Теперь я планирую разобраться с моими отчетами и "готовыми" моими формами, что означает замену сетки более способной реализацией. Там есть нагрузки, и у меня есть два из них Developer Express Quantum Grid и TMS Grid Pack. Время очень ограничено, однако, чтобы экспериментировать с шрифтами, цветами и печатью, и я был бы признателен за рекомендации, какие из многих комбинаций отчетов по сетке/печати, которые я должен принять. У меня нет генератора отчетов и я рассматриваю FastReports, но я открыт для предложений.

4b9b3361

Ответ 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".

Ответ 2

Возможно, это может быть Virtual Treeview. Мы используем его как сетку в нашем приложении. Я не пробовал печатать, но я буду в какой-то момент в ближайшем будущем. Он может экспортировать в rich text или html, что может быть полезно для этого.

РЕДАКТИРОВАТЬ: Это, кстати, открытый источник и довольно полированный.

EDIT2: Исправлено имя компонента. Я сделал это изначально, но он потерялся, когда я сделал ссылку.

Ответ 3

Я могу настоятельно рекомендовать использовать ExpressQuantumGrid!

Вы можете подумать о фасадном классе TStringGridToCxGrid, который заменяет TStringGrid и переводит ваш устаревший код на TcxGrid.

Ответ 4

Я всегда был заинтригован KGrid. Однако я не использовал его за рамки простого тестирования. Стоит проверить, заинтересована ли вы в бесплатной альтернативе.

Ответ 5

Вы также можете рассмотреть BergSoft NextGrids http://www.bergsoft.net/

Затраты почти ничего не стоят и имеют приличную поддержку

Ответ 6

Вы можете попробовать использовать библиотеку EhLib, включая компонент TDBGridEh. Это дешево и очень мощно. http://www.ehlib.com