Рекомендации по наиболее полезной замене Delphi TStringGrid (Grid) - PullRequest
13 голосов
/ 28 июня 2011

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

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

Ответы [ 6 ]

13 голосов
/ 28 июня 2011

Примерно в 1998 году я устал от TStringGrid и начал долгий путь за границу.Я активно использовал виртуальные элементы управления представлением сетки, в том числе ExGridView Романа Мочалева (перенесенный на Delphi 2010 / XE здесь ) и элемент управления квантовой сеткой Developer Express, а также комплект печати, который поставляется вместе с ним, а также Virtual Tree View.Майк Лишке.Да.Это вид дерева.Но если вы не создадите несколько уровней узлов, это тоже делает довольно большую виртуальную сетку.

В конце концов, ни один из них не совершенен.Требования вашего приложения могут включать в себя:

  • Печать.Если это так, я бы пошел к компонентам Developer Express , так как их компонент сетки и другие компоненты имеют встроенную поддержку печати в их наборе печати. ​​

  • Многопо индивидуальному заказу, но без печати.Если это так, я бы вернулся к VCL TDrawGrid , потому что в противном случае вам будут мешать более сложные системы покраски.

  • Сохраняя это простым.Если это так, я рекомендую ExGridView компонент .Все остальные решения, кажется, помогают мне на 98% пути и требуют тонны технического обслуживания, чтобы решить нестандартные проблемы с окраской, проблемы с печатью или что-то еще.Если все, что вам нужно, это виртуальная сетка в стиле Windows 2000, отображающая данные из вашей модели, используйте ExGridView.

  • Может потребоваться вложение узлов (дерева) в будущем.Тогда просто начните с VirtualTreeView сейчас, и используйте его как сетку, а затем плавно добавьте функциональность дерева позже.

В вашем случае возможно множество дополнительных «дополнительных требований»,чем я могу придумать и перечислить здесь.Но именно эти «также» вещи будут (или должны) диктовать ваш выбор.Ваше приложение должно работать 24/7 / 365.25?Ну, тогда будь проще и избегай всяких изысков, которые тебе позже повредят.

Поскольку вы заявляете, что вам нужна печать, красиво выглядящая тематическая живопись и у вас уже есть компоненты Developer Express, это был бы самый логичный выбор # 1.Это стабильный, зрелый и высококачественный комплект компонентов.Для других людей, которые рассматривают этот вопрос позже, мое единственное предостережение в том, что это сложное, тяжеловесное решение, и оно не подходит для 100% всех приложений Delphi, которым «просто нужна работоспособная сетка лучше, чем TStringGrid».DevEx Quantum Grid может копировать практически все функции сетки, которые вы когда-либо видели в Outlook, например, включая функцию «группировать по».

7 голосов
/ 28 июня 2011

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

РЕДАКТИРОВАТЬ: Между прочим, он с открытым исходным кодом и довольно отполирован.

РЕДАКТИРОВАТЬ 2: Исправлено имя компонента.Первоначально я сделал это, но он потерян, когда сделал ссылку.

4 голосов
/ 28 июня 2011

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

4 голосов
/ 28 июня 2011

Я настоятельно рекомендую перейти с ExpressQuantumGrid !

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

2 голосов
/ 28 июня 2011

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

Ничего не стоит и имеет достойную поддержку

1 голос
/ 28 июня 2011

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

...