Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 3)

Автор: infomSB
Дата сообщения: 09.11.2009 11:41
Ребят а многие сталкиваются с проблемой функционирования NavBar v45 в DELPHI 2009 ?
Автор: f3ka
Дата сообщения: 09.11.2009 12:14
vladman
идея хорошая, но есть недостаток, что придется в каждом приложении где то в рантайме задавать этот RepositoryItem для колонок, а хотелось бы руссифицировать навсегда... ну не пишу я программы с английским фейсом... поэтому и хочется найти в исходниках где задаются эти строки, чтоб поправить и пересобрать компоненты...
Автор: volser
Дата сообщения: 09.11.2009 12:36
infomSB
Что за проблема? Мой телепатический шар ничего не выдает.
Автор: vladman
Дата сообщения: 09.11.2009 12:57
f3ka

Цитата:
есть недостаток, что придется в каждом приложении где то в рантайме задавать этот RepositoryItem для колонок

Ну вы же все равно указываете для этих колонок Properties = CheckBox.
Но конечно же есть способ и "раз и навсегда".
Нужно переопределить константы @cxSEditCheckBoxChecked и @cxSEditCheckBoxUnchecked.
И эти константы X11 переопределял. Но дело в том, что их нужно переопределить до создания редакторов, т.е. до создания формы на которой эти редакторы расположены.
Например так:

Код: begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
cxSetResourceString(@cxSEditCheckBoxChecked,'Да');
cxSetResourceString(@cxSEditCheckBoxUnchecked,'Нет');
Application.CreateForm(TForm71, Form71);
Application.Run;
end.
Автор: infomSB
Дата сообщения: 09.11.2009 13:16

Цитата:
Что за проблема? Мой телепатический шар ничего не выдает.

Если у вас приведенные версии компонентов и вы с ними не сталкивались, значит они локальны- что довольно плохо, но тем не менее, проблемы следующего характера:
Я переезжал с Delphi 2006, использовал те же компоненты, теперь все группы NavBar отображаются в виде невизуальных компонентов на форме, причем все настраивается, если же эти невизуальные компоненты удалить, то и удаляется соответствующая группа. Выделить группу при этом на самом навбаре невозможно, т.е. при шелчке на зеленый квадратик ничего не происходит. Так же невозможно попасть в свойства самого навбара, так как нет соответствующего пункта меню, а при двойном клике создается евент NavBarCustomDrawEvents.
Автор: f3ka
Дата сообщения: 09.11.2009 13:26
vladman
спасибо за разъяснения когда необходимо переопределять константы...
Автор: X11
Дата сообщения: 09.11.2009 22:06

Цитата:
Все намного проще. Установите в свойствах DisplayChecked и DisplayUnChecked свойства Properties вашего CheckBox необходимые вам значение (Да/Нет соответственно) и это решит проблему.


Как видите - проблему не решает
(снимок из MS Excel 2007)


Вот в диспетчере свойств изменил


Добавлено:
Напомню, что грид не привязан ни к чему. Dev43
Автор: vladman
Дата сообщения: 10.11.2009 01:46
X11

Цитата:
Как видите - проблему не решает

Я бы не был столь категоричен в
Цитата:
это решит проблему
если бы не проверил это.
Проверено на Dev46 и грид = TcxGridTableView.
Может быть фраза
Цитата:
грид не привязан ни к чему
несет некий другой смысл, отличный от TcxGridTableView?
Давайте пример, может он будет более нагляден для выявления проблемы.
Автор: CAD_tester
Дата сообщения: 10.11.2009 06:34
Уважаемые Гуру!
Начал играться с компонентами DevExpress, мне они очень понравились, но вот наткнулся на какую проблему! Пытался заполнить Грид через обычный Table и не нашёл, как это делается , все выходные курил Help!
Ранее использовались компоненты EhLib-овские. Там решали эту проблему следующим образом был такой КОМПОНЕНТ MemTable он достаточно наворочен.
При использовании вместе с dbGridEh основное приемущество - возможность отображения в виде дерева. Еще встроенный фильтр в dbGridEh работает сосем как в Excel Автофильтр да и заточен он под него и работает все само собой.

При этом есть возможность делать две и более MemTable с одним и тем же набором данных(в памяти), но имеющими разную сортировку и фильтрцию. Ну и спец компоненты для выборки из DataSet в MemTable.

И даже можно в DesignTime заполнить таблицу а в Runtime при открытии она сама прочитается из ресурсов. То есть уже будет заполнена.

Мы сами докрутили этот компонент и научили его еще работать с XML данными!

Внимание вопрос!!! Подскажите плиз, существует ли что либо подобное у Dev-овских компонент. так как свои компоненты между собой всегда настроены на оптимальную работу!

Заранее огромное спасибо откликнувшимся!!! Самое главное чтоб компонент работал в ПАМЯТИ, а не писал куда то данные, а потом считывал(т.к. это очень сильно тормозит прогу) и мог работать с XML классами

Кстати Dev-ки поставил последние версии 4.7 если это критично!
Автор: f3ka
Дата сообщения: 10.11.2009 07:31
CAD_tester
конечно же DevExpress реализовал свой DataSet In Memory - TdxMemData называется...
Но в TcxGridTableView (не DB) реализован так же DataController, который хранит данные в памяти... вот еще покурите Help к DataController'у и к TdxMemData... вроде как TdxMemData
умеет работать с XML
Автор: onewin
Дата сообщения: 10.11.2009 09:54
TdxMemData быстрей работает эхлибовской мемдаты, но необладает всеми этими "крутыми" фишками.

Так а почему нельзя использовать эту эхлибовскую мем дату и
TcxGrid.TcxGridDBTableView ?

ps: где-то на просторах рунета видел сорцы датаконтроллера для эхлибовской мемдаты.
с ним возможно мемдата будет работать на полную..

Добавлено:

Цитата:
Я переезжал с Delphi 2006, использовал те же компоненты, теперь все группы NavBar отображаются в виде невизуальных компонентов на форме, причем все настраивается, если же эти невизуальные компоненты удалить, то и удаляется соответствующая группа.


У меня подобный глюк с появлением групп в виде невизуальных компонент на форме возникал и на более старых версиях девов на D2007. Причем после переоткрытия проекта все становилось норм. В D2010 пока такого не возникало.

Автор: X11
Дата сообщения: 11.11.2009 21:42
Dev47. Вопрос по dxComponentPrinter.
Есть cxGrid, привязанный к dxComponentPrinter (dxComponentPrinter1Link: TdxGridReportLink)
Подскажите, как-то можно средствами девок сохранять настройки этого самого dxComponentPrinter1Link`? Если да, то как?
Автор: data man
Дата сообщения: 11.11.2009 21:56
X11

Цитата:
Подскажите, как-то можно средствами девок сохранять настройки этого самого dxComponentPrinter1Link`?

TcxPropertiesStore ?
Автор: X11
Дата сообщения: 11.11.2009 22:13
Тогда уж лучше с помощью PropStorageEh (EhLib).А другим способом?

Добавлено:
Использовал Dev43, теперь поставил Dev47.
Подскажите, как быть с получением ключевого значения дерева (cxDBTreeList)?

Hаньше так получал

Код: iType := dbTreeType.DataController.GetKeyFieldsValues;
Автор: vladman
Дата сообщения: 12.11.2009 01:03
X11

Цитата:
Подскажите, как быть с получением ключевого значения дерева (cxDBTreeList)?
Hаньше так получал
Код:
iType := dbTreeType.DataController.GetKeyFieldsValues;
А теперь компилятор ругается на GetKeyFieldsValues
E2003 Undeclared identifier: 'GetKeyFieldsValues'


9. Breaking Change – Now, the TcxDBTreeListDataController inherits from the TcxDataTreeListDataController. The former TcxDBTreeListDataController's parent – the TcxDBDataController – is no longer in the data controller inheritance hierarchy. Refer to the TcxDBDataController description to learn about its members that are now not the part of the data-aware tree list's data controller API.

Подробнее о всех Breaking Changes: ms-help://borland.bds5/ExpressQuantumTreeList5.BDS5/ExpressQuantumTreeList5/CD_Known_Issues_and_Important_Changes_List.htm

Используйте TcxDBTreeListNode.KeyValue - Specifies the node's unique identifier.
ms-help://borland.bds5/ExpressQuantumTreeList5.BDS5/ExpressQuantumTreeList5/IDH_TcxDBTreeListNode_KeyValue.htm
Автор: X11
Дата сообщения: 12.11.2009 21:41

Цитата:
Подробнее о всех Breaking Changes: ms-help://borland.bds5/ExpressQuantumTreeList5.BDS5/ExpressQuantumTreeList5/CD_Known_Issues_and_Important_Changes_List.htm

открыл справку в IDE (D2007) вставил ссылку....

Цитата:
Невозможно отобразить страницу

Сервер не найден


Добавлено:

Цитата:
Используйте TcxDBTreeListNode.KeyValue - Specifies the node's unique identifier.

Да, до этого я уже допёр (из справки вычитал)

Код получается очень длинный

Код: dbTreeTypes.FocusedNode as TcxDBTreeListNode).KeyValue
Автор: data man
Дата сообщения: 12.11.2009 21:55
X11

Цитата:
Невозможно отобразить страницу
 
Сервер не найден

Для D2007, если не ошибаюсь, в ссылке надо заменить bds5 на bds3.
Автор: vladman
Дата сообщения: 13.11.2009 00:34
X11

Цитата:
открыл справку в IDE (D2007) вставил ссылку....

Скорее всего у вас не установлен help для ExpressQuantumTreeList5
Та же информация доступна в разделе DevExpress Technologies - Version History,
Breaking Changes,VCL Product Line - Build 44

data man

Цитата:
Для D2007, если не ошибаюсь, в ссылке надо заменить bds5 на bds3.

Нет, как раз это ссылка для D2007. bds3 - это D2005
Автор: CAD_tester
Дата сообщения: 13.11.2009 07:06
f3ka

Цитата:
вот еще покурите Help к DataController'у и к TdxMemData...

спасибо! Лишь бы здоровье себе не испортить этим курением! Побыстрей бы освоить !
onewin

Цитата:
Так а почему нельзя использовать эту эхлибовскую мем дату и
TcxGrid.TcxGridDBTableView ?

Я об этом же уже подумал, просто думал с родными своими компонентами скорость должна быть выше!
Автор: sldaac
Дата сообщения: 13.11.2009 09:08

Цитата:
спасибо! Лишь бы здоровье себе не испортить этим курением! Побыстрей бы освоить


Цитата:
Я об этом же уже подумал, просто думал с родными своими компонентами скорость должна быть выше!


попробуйте TkbmMemTable, довольно неплохая компонента
Автор: Cryogen2003
Дата сообщения: 13.11.2009 09:19
sldaac
Сам пользуюсь TkbmMemTable. стоит ли отходить в сторону MemTable от девок?
Автор: sldaac
Дата сообщения: 13.11.2009 11:44
Cryogen2003

Цитата:
Сам пользуюсь TkbmMemTable. стоит ли отходить в сторону MemTable от девок?


смысла не вижу.
Была у меня какая-то проблема TkbmMemTable , решил попробовать MemTable от девок, затем появилось немного времени, разобрался с TkbmMemTable и с тех пор никуда.
TkbmMemTable устраивает вполне.
Автор: Cryogen2003
Дата сообщения: 13.11.2009 13:02
sldaac
Ну я просто думал пощупать
А так, я пока все в свободное время переписываю некоторый код. Отказываюсь полностью от EhLib в своем основном проекте и постепенно схожу с ума
Особенно радует вычищать MemTable и DataDriver от EhLib, уже достало по полной все это
Автор: sldaac
Дата сообщения: 13.11.2009 13:59
Cryogen2003

Цитата:
Особенно радует вычищать MemTable и DataDriver от EhLib, уже достало по полной все это

Знаеш, в одном проекте подмогли мне эти компоненты, не помню точно тонкостей, было больше года, но...... с их помощью решение было очень элегантным. Но больше нигде их не применял.... есть TkbmMemTable
Автор: Cryogen2003
Дата сообщения: 13.11.2009 14:42
sldaac
В свое время DataDriver поставил только ради фильтрации аля Ёксель. А сейчас все тоже самое встроенно в Девовский грид с возможностями, даже большими. Так что в принципе все ок.
Кстати на вскидку не помнишь, сколько жрет памяти девовский MemTable при большом количестве записей? Просто у kbmMemTable при Perfomance установленным в Fast и количестве записей примерно тысяч 50 - расход памяти около гига, если конечно Perfomance установить в Small - памяти жрет около 100 метров, но при этом еле-еле ворочается.


Добавлено:
Кстати, как можно в девовском гриде управлять значками сортировки, но при этом не сортировать (ну то есть должно вызываться при этом какая процедура, пересоздаваться sql запрос и стало быть обновление данных из базы)?
От EhLib отказался практически везде, а тут понять не могу как сделать.
Автор: Graach
Дата сообщения: 13.11.2009 20:50
Всем доброго времени суток.

Есть приложение (с TdxRibbon и ленточным статус баром), в котором подключены и работают скины и есть dll-ка которую вызывает приложение (TcxGrid и TdxBarManager). В обоих проектах включены компоненты dxSkinController. При этом в библиотеке в дизайн-тайме все красиво, показывается заданный по умолчанию скин, но в ран-тайме никакого скина и близко нет. Даже если по нажатию кнопки присваивать skinname никакой реакции. Девы местные от 09.07.09.

Если уже было обсуждение, ткните носом в ссылку пожалуйста.
Автор: vladman
Дата сообщения: 13.11.2009 23:25
Graach

Цитата:
Если уже было обсуждение, ткните ссылку пожалуйста.

Да, что-то похожее уже здесь обсуждалось.
Если кратко, то в вашей dll необходимо инициализировать GDI+.
Более подробное описание решения смотрите в Bug Report Details: Failed to use Skins in a DLL form
Также обратите внимание, что вам нет необходимости помещать SkinController в dll. Т.е. достаточно одного SkinController'а, помещенного в вызывающее приложение. Условия, которые необходимо при этом выполнить, также описаны в приведенной статье.
Автор: anpsoft
Дата сообщения: 14.11.2009 00:06
TkbmMemTable давно использую
по мне так отлично работает
Автор: Graach
Дата сообщения: 14.11.2009 09:10
vladman

Спасибо огромное, в понедельник буду пробовать
Автор: X11
Дата сообщения: 14.11.2009 15:20
Дев47.
Пытаюсь в cxButton загрузить изображение 16х16 в формате PNG. Не программно, а в дизайне, в IDE. Вываливается сообщение "Invalid graphic format.". Раньше всё было в норме, в версии 43.
Это баг?
Здесь ничего не нашёл такого
http://www.devexpress.com/Support/WhatsNew/VCL/files/44.bc.xml


Добавлено:
Забыл добавить, что у меня D2007.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

Предыдущая тема: Delphi: tcp клиент в потоке


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.