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

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

Автор: FunCode
Дата сообщения: 17.09.2009 18:25

Цитата:
Интересует следующая проблема:
Есть cxButton у которого в зависимости от каких-либо условий я устанавливал Colors.Normal конкретный цвет, т.е. изменял цвет фона кнопки. Так вот сейчас перешел на использование скинов и заметил что мои изменения не влияют. Попробовал через OnGetDrawParams - тоже не влияет. Есть ли какая либо возможность при использовании скинов менять цвет фона кнопки ?

Нашел все-таки у них в Knowledgebase ответ на такую же ситуацию, если
кому интересно, то вот How to set the Color of a cxButton when I use Skins
В двух словах: невозможно, т.к. это противоречит концепции скинов (со слов разработчиков), но клиент там предложил интересное решение проблемы, но со своими минусами и заморочками ...
Автор: X11
Дата сообщения: 17.09.2009 18:48

Цитата:
To all
Кто-нибудь отказывался от EhLib компонентов в пользу девок? Много подводных камней при этом встречается?

Вообще при изучении девок хватает камней по незнаю оных. Но как вникнешь, то всё будет в шляпе.
Автор: JohnSilver182
Дата сообщения: 17.09.2009 20:08

Цитата:
Кто-нибудь отказывался от EhLib компонентов в пользу девок? Много подводных камней при этом встречается?

Ну это разное . EhLib по большому счету это Grid навороченный . А у Девок я смотрю cxGrid по наворотам круче чем весь EXEL .
Самое главное это Репозиторий стилей мне нравиться . А то у меня раньше на одной форме один шрифт у компонентов , на другой форме другой . А тут система .
Автор: Cryogen2003
Дата сообщения: 18.09.2009 08:34
X11 JohnSilver182
Ну просто хочется снести нафиг все компоненты от EhLib (не только Грид, но и мемтэбл, и КомбоЛукАп) в пользу девок хотя бы из-за одного общего стиля, а так просто уже задолбал один exception в EhLib (Canvas does not allow drawing). Но например в моем основном гриде есть и футеры, и верхние фильтры aka excel. Все это возможно у девок?


Добавлено:
korobovmax
C английским у меня туго
Автор: JohnSilver182
Дата сообщения: 18.09.2009 09:11

Цитата:
в пользу девок хотя бы из-за одного общего стиля

Да ! На девки стоит хотя бы ради этого переходить .
А круче cxGrid который в девках , я не видел . Кстати единственно что лутше в Eh_DBGrid это поиск по CTRL-F как в EXEL , в "Девкином" cxGrid этого нет .
Автор: X11
Дата сообщения: 18.09.2009 09:29
И футеры и фильтры у девок в мульён! раз круче. Но... если тебе понадобиться многоуровневый заголовок или зафиксировать колонку.... то тут не получиться использовать вертикальную черту | в качестве построителя заголовков. Тут нужно на бэнды смотреть.
Автор: Cryogen2003
Дата сообщения: 18.09.2009 09:32
X11
По поводу бэндов для грида поподробнее. Может быть есть какой-то example?
Автор: X11
Дата сообщения: 18.09.2009 10:02
Ну вот... началось )))) у девок справка, видеопримеры и примеры на сайте в свободном доступе. А с бэндами всё просто, создаёшь в гриде бэндедтэйбл, а не обычный.
Автор: Cryogen2003
Дата сообщения: 18.09.2009 10:05
X11
Ну дык иногда бывает легче спросить, чем смотреть справку
А так, спасибо, буду смотреть. Правда начальник сказал, что не даст времени на перевод проекта с EhLib на девок
Автор: X11
Дата сообщения: 18.09.2009 10:20
значит заменяй таблицы постепенно.
Автор: Cryogen2003
Дата сообщения: 18.09.2009 10:23
X11
Ну я так же и решил, что просто потихоньку и полегоньку буду заменять. Правда с главной формой придется повозиться. Есть основной грид сверху и снизу десяток закладок и в каждой грид. Чтобы по стилю подходило все, придется главную форму менять всю сразу.
Автор: JohnSilver182
Дата сообщения: 18.09.2009 11:15

Цитата:
А так, спасибо, буду смотреть. Правда начальник сказал, что не даст времени на перевод проекта с EhLib на девок


Денег дал на покупку Девок , а времени нет ??
Автор: Cryogen2003
Дата сообщения: 18.09.2009 11:21
JohnSilver182
Нееее, денег не давал на покупку девок. На моей работе дают деньги нормально только под яву и все что с ней связано
Автор: jonikDk
Дата сообщения: 18.09.2009 11:57
Cryogen2003
херовый у тебя начальник, если разрешает программистам самим выбирать компоненты. Должен быть список утвержденных компонент, которыми можно пользоваться.
Автор: JohnSilver182
Дата сообщения: 18.09.2009 13:16
Флуд ON

Кстати я так и представил
Начальнег :
- Переходим на лицензионные компоненты . Сколько стоят девки ??
- Скоко скоко ??? Сококо скоко скоко скоко ???
- скоко ? скоко ? скокоскокоскокоскокоскокоскокоскоко ???
Автор: Cryogen2003
Дата сообщения: 18.09.2009 13:22
jonikDk
Ну у меня просто свои есть проекты на работе и я за них один ответственный.

JohnSilver182
Да, с флудом надо заканчивать это точно. А по поводу компонентов - а так всегда и было, в принципе у нас куплена дельфя, фастрепорт еще 3 версии, а все остальное уже сам внедрял так или иначе. Девки думаю были бы куплены, если бы не кризис.
Автор: korobovmax
Дата сообщения: 18.09.2009 13:46
JohnSilver182, в прошлом годы полная подписка на все компоненты vcl стояла 32к рублей. Не так и много за такие компоненты да еще с очень быстрой поддержкой.
В добавок дали почти все компоненты из серии ASP.NET.
К тому же, нам клиент купил их
Автор: jonikDk
Дата сообщения: 18.09.2009 13:50
JohnSilver182
sorry за offtop...
причем тут это. Да лучше покупать, но даже если это
варез, то решать должен не программист, а начальник.

Cryogen2003
А если ты заболеешь ?? или уволишься ?? Я не говорю плохо, что ты пользуешься этими компонентами или что ты плохой программер. Плохо что твоему начальнику похер каким компонентами ты пользуешься !!!
Автор: Cryogen2003
Дата сообщения: 18.09.2009 13:53
jonikDk
Слушай, мы тут с тобой много наоффтопили уже.
А так, весь прикол в том, что я работаю на турков, а им в принципе пофиг вообще на русских. А так, у меня в отделе было 9 человек, кризис сожрал 6 человек и осталось 3, из них один начальник и два главных специалиста. Между тремя людьми (один из которых я) разделили все проекты, как говориться комментарии дальнейшие излишне.
Автор: X11
Дата сообщения: 18.09.2009 15:04
Понимаю, что пятница, но всё же решусь задать вопрос.

На форме есть несколько гридов. Нужно по нажатию на Enter сохранить активный грид.


Код:
В событии OnKeyPress формы

if (ActiveControl is TcxGridSite) and
(TcxGridDBTableView(TcxGridSite(ActiveControl).GridView).DataController.IsEditing) then
begin//нажатие на Enter - сохранение данных
if key = vk_Return then
TcxGridDBTableView(TcxGridSite(ActiveControl).GridView).DataController.Post;
end;
Автор: xokc
Дата сообщения: 18.09.2009 21:49

Цитата:
И ещё один вопрос. Не будет ли слишком накладно для ресурсов компа, если на форме (на PageControl) положить сразу штук 20 cxGrid`ов?

Не проще ли попробовать самому? Мы ж не знаем, что у тебя за комп, СУБД и т.д.
P.S.
Застрелил-бы разработчика (или дизайнера?), если бы он мне попробовал впарить такой pagecontrol с 20-ю вкладками..
Автор: X11
Дата сообщения: 18.09.2009 22:03

Цитата:
Не проще ли попробовать самому? Мы ж не знаем, что у тебя за комп, СУБД и т.д.

Дело не в субд и не конкретно в моём компе. Программа предназначена не для моего компа. А какие будут компы у пользователей.... Я понимаю, что современным компьютерам горы по плечо. Но всё же может у кого-нибудь был опыт работы с большим количеством гридов на одной форме.
А лучше деже использовать один грид и много вьюх.


Цитата:
Застрелил-бы разработчика (или дизайнера?), если бы он мне попробовал впарить такой pagecontrol с 20-ю вкладками..

Вот и я про то же. Что можно придумать в этом случае "поудобнее" так сказать?
Автор: Sufferer
Дата сообщения: 19.09.2009 09:33
Если вкладок много, то можно попробовать реализовать через TcxVerticalGrid или TdxSideBar или действительно воспользоваться TcxTabControl с одним TcxGrid и кучей вьюх.
Автор: JohnSilver182
Дата сообщения: 19.09.2009 18:52
А вобще интересно про ресурсы . У cxGrid при прокрутке даже 1000-3000 записей и 4-5 столбцов одно ядро 3Гц полностью занято работой .
Автор: FunCode
Дата сообщения: 19.09.2009 19:56
JohnSilver182

Цитата:
А вобще интересно про ресурсы . У cxGrid при прокрутке даже 1000-3000 записей и 4-5 столбцов одно ядро 3Гц полностью занято работой .

Возможно ... если куча полей, да еще куча обработчиков событий на столбцах ... а так такое количество при 7-10 столбцах не особо нагружает проц ... Да и тяжело это мерить - надо смотреть тип полей, размерность, поэтому скорее всего лучше рассматривать относительное сравнение насчет использования множества экземпляров cxGrid против одного cxGrid и множества View ....
Автор: vladman
Дата сообщения: 19.09.2009 21:22
Energot

Цитата:
Отписал в личку.

Сори за задержку, не было времени здесь появляться. Посмотрю и постараюсь ответить ASAP.

Добавлено:
FunCode

Цитата:
Интересует следующая проблема: ...
Есть ли какая либо возможность при использовании скинов менять цвет фона кнопки ?

В какой-то мере решить вашу проблему может установка свойства LookAndFeel.SkinName в nil, в случае, когда вам нужно изменить цвет фона кнопки, и вернуть его в сохраненное значение, когда кнопка должна отрисовываться стандартным для выбранного скина способом.

Добавлено:
JohnSilver182

Цитата:
А вобще можно настройки Репозиториев выгружать \ загружать в файл ??

Какие конкретно репозитории вас интересуют? У DevExpress их как минимум 4:
cxStyleRepository, cxGridViewRepository, cxEditRepository, cxBarScreenTipRepository.

Добавлено:
Cryogen2003

Цитата:
У кого-нибудь есть dll со всеми новыми скинами? А то, в dll из шапки кучу скинов не хватает

Обратитесь к автору этой dll, он же указан в шапке.

Добавлено:
JohnSilver182

Цитата:
А круче cxGrid который в девках , я не видел

А буквально полтора месяца назад у вас были совсем другие высказывания по поводу DevExpress:

Цитата:
Кстати почему есть в cxGrid TcxCustomGridTableView.OnCellClick
Но нет гораздо умного события на получения фокуса ячейки ??
или

Цитата:
А почему в Девках элементарные вещи идут через тернии ????

Это еще раз доказывает, что не стоит горячиться и торопиться с выводами, а нужно спокойно
один раз разобраться и будет счастье

Цитата:
Кстати единственно что лутше в Eh_DBGrid это поиск по CTRL-F как в EXEL , в "Девкином" cxGrid этого нет .

Так это очень даже легко сделать используя встроенный механизм ExpressQuantumGrid - Incremental Search, подробнее: ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_cd_Incremental_Search.htm


Добавлено:
X11

Цитата:
Нужно по нажатию на Enter сохранить активный грид. ...
Но получается так, что нужно нажать Enter 2 раза.

Вызывайте метод Post не DataController'а а DataSet'a
TcxGridDBTableView(TcxGridSite(ActiveControl).GridView).DataController.DataSource.Dataset.Post


Цитата:
Не будет ли слишком накладно для ресурсов компа, если на форме (на PageControl) положить сразу штук 20 cxGrid`ов?

Не должно. Но лучше использовать не PageControl, а уровни cxGrid (не подчиненные), и в них создать 20 TableView. Будет выглядеть как закладки похожие на PageControl. Подробнее:
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_Custom_GridLevels.htm
Но я бы сделал всетаки один cxGrid с одним TableView, даже несмотря на специфические настройки.
Во-первых, при добавлении нового справочника не нужно делать новый грид, а только Datset-DataSource.
Во-вторых, справочников со специфичными настройками не 20 штук, а гораздо меньше, так что для их (настроек) хранения можно очень успешно пользоваться cxGridViewRepository.
В-третьих: Для специфических настроек редакторов в справочниках используйте cxEditRepository.
И в-четвертых: есть отличные функции <YourListTv>.ClearItems и <YourListTv>.DataController.CreateAllItems;
Т.е. при переключении активного справочника переключайте DataSource, вызываете эти функции, применяйте необходимые настройки из cxGridViewRepository и cxEditRepository. Немного больше кода, но достаточно гибко и нересурсоемко.
Автор: JohnSilver182
Дата сообщения: 20.09.2009 13:22

Цитата:
Так это очень даже легко сделать используя встроенный механизм ExpressQuantumGrid - Incremental Search, подробнее: ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_cd_Incremental_Search.htm

А я вот не понял . Как это трактовать ?? Вроде не WWW....


Добавлено:

Цитата:
А вобще можно настройки Репозиториев выгружать \ загружать в файл ??
Какие конкретно репозитории вас интересуют? У DevExpress их как минимум 4:
cxStyleRepository, cxGridViewRepository, cxEditRepository, cxBarScreenTipRepository.

Я про cxStyleRepository хотел узнать
Автор: vladman
Дата сообщения: 20.09.2009 16:17
JohnSilver182

Цитата:
А я вот не понял . Как это трактовать ?? Вроде не WWW....

Это путь в Microsoft Document Explorer, который используется в качестве справочной системы начиная с BDS 2005, если не ошибаюсь.

Цитата:
А вобще можно настройки Репозиториев выгружать \ загружать в файл ?? ...
Я про cxStyleRepository хотел узнать

Можно. У TcxCustomStyleSheet есть два метода LoadStyleSheetsFromIniFile и SaveStyleSheetsToIniFile. Подробнее:
ms-help://borland.bds5/ExpressCrossPlatformLibrary.BDS5/ExpressCrossPlatformLibrary/IDH_Class_TcxCustomStyleSheet.htm
Если нужно сохранять свойства конкретного стиля, воспользуйтесь компонентом cxPropertiesStore и в нем выберите для сохранения необходимые стили.
ms-help://borland.bds5/ExpressCrossPlatformLibrary.BDS5/ExpressCrossPlatformLibrary/IDH_Class_TcxPropertiesStore.htm
Такие операции выгрузки/загрузки в файл возможны как в RunTime так и в DesignTime.
Автор: gyani
Дата сообщения: 20.09.2009 19:28
Здравствуйте, подскажите как выставить настройки (min,max) ячеек cxGrid имеющих тип progressbar с ралличными значениями по строкам?
Автор: Granmer
Дата сообщения: 20.09.2009 20:09
xokc

Цитата:
Granmer
Могу только сказать, что имею достаточно богатый опыт работы c Layout и у меня с ним проблем никогда не было. Правда и скины не юзал.

Да, похоже действительно проблема в скинах. Положив Layout без скинов c десяток разных компонентов, перетаскивал, создавал группы и т.п. - всё нормально. Как только подключил скины - сразу же дельфи повисла. Причём последовательность была такая: Добавил на форму LayoutControl - работает, положил в него компоненты - работает, положил dxLayoutLookAndFeelList (создав в нём dxLayoutSkinLookAndFeel1) - работает, а вот после этого добавляю dxSkinController и тут же Delphi виснет загрузив одно ядро по максимуму. Чем можно исправить такую досаду? Или придётся отказываться от Layout?

Добавлено:
gyani

Цитата:
Здравствуйте, подскажите как выставить настройки (min,max) ячеек cxGrid имеющих тип progressbar с ралличными значениями по строкам?

Например, создаешь на столбце с прогресс-барами обработчик события OnGetProperties и в нём меняешь свойства

Код:
TcxProgressBarProperties(AProperties).Max:=10;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

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


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