Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2

Модерирует : ShIvADeSt

ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда
 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, начало тут
 

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:16 29-01-2007 | Исправлено: VitaliM, 15:47 24-11-2008
sam291074



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В cxVGride есть ряд строк. В цикле пытаюсь организовать запись в файл из этой таблицы по типу "Параметр-значение". В качестве параметра использую имя строки

Код:
 cxVGrid->Rows->Items[i]->Name

и это прокатывает, но как получить значение Value, которое в этой строке? Помогите.

Всего записей: 113 | Зарегистр. 22-03-2006 | Отправлено: 21:39 11-01-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VerticalGridRowName.properties.value

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:21 12-01-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
Var
 i:integer;
 v: variant;
begin
 for I := 0 to vgOptions.Rows.Count - 1 do
   v := (vgOptions.Rows[i] as TcxEditorRow).Properties.Value;
 

 
Не забывай проверять тип, класс. Ведь можно нарваться на разделитель (категорию)

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:15 12-01-2009
VitOs2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста!
В общем так.
Условие.
Есть Форма. На ней TdxRibbon и, соотвественно, TdxBarManager.
Есть три кнопки TdxBarLargeButton. (dxBarLargeButton1, dxBarLargeButton2, dxBarLargeButton3). (По этим кнопкам устанавливаются три разных вида таблицы).
Свойства этих кнопок ButtonStyle = bsCheckedDropDown (то-есть, половина - кнопка, половина - всплывающее меню).
Свойство этих кнопок GroupIndex у всех 1 (чтоб все вели себя как радио-батоны).
В свойство этих кнопок DropDownMenu присваивается dxBarPopUpMenu1.
Для простоты, пусть в dxBarPopUpMenu1 один айтем dxBarButton1 (Установить вид таблицы).
Задача
При нажатии на кнопку (из меню dxBarPopUpMenu1) dxBarButton1 узнать через какую из кнопок dxBarLargeButton1, dxBarLargeButton2, dxBarLargeButton3 было вызвано это меню.
Спасибо!

Всего записей: 54 | Зарегистр. 18-03-2008 | Отправлено: 16:02 12-01-2009
sam291074



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
Спасибо, так и сделал.  

Код:
((TcxEditorRow*)(cxVGrid->Rows->Items[i]))->Properties->Value

Работает.

Всего записей: 113 | Зарегистр. 22-03-2006 | Отправлено: 20:41 12-01-2009
wbsg

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitOs2
 

Цитата:
 
Задача  
При нажатии на кнопку (из меню dxBarPopUpMenu1) dxBarButton1 узнать через какую из кнопок dxBarLargeButton1, dxBarLargeButton2, dxBarLargeButton3 было вызвано это меню.
 

 
Tag'и не помогают?

Всего записей: 65 | Зарегистр. 08-06-2005 | Отправлено: 10:03 13-01-2009
Andy_BitOff



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitOs2
Нет времени попробовать и посмотреть, но на вскидку события кнопки click, popinit или что-то типа.

Всего записей: 48 | Зарегистр. 04-09-2006 | Отправлено: 10:07 13-01-2009
VitOs2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andy_BitOff
wbsg
Чего-то никак не получается... Еще будут идеи?

Всего записей: 54 | Зарегистр. 18-03-2008 | Отправлено: 10:55 13-01-2009
infomSB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitOs2
Есть топорная идея (применять только если ничего не поможет):
Оценивать положение мышки в событии OnPopup твоего меню, и смотреть если координаты подходят под кнопку то значит она и вызывала, единственно что надо разобраться как получить координаты кнопок в риббоне.

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 11:31 13-01-2009
VitOs2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
infomSB
Спасибо за ответ. Топорно, я впринципе реализовал (три разных менюшки, куча обработчиков завязанных на тегах). Но мне это очень не нравится. Думал, может, кто-то "поправильнее" подскажет...

Всего записей: 54 | Зарегистр. 18-03-2008 | Отправлено: 12:07 13-01-2009
Andy_BitOff



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitOs2
Вот твоя кнопка, точнее ее заголовок:
procedure TForm1.dxBarPopupMenu1Popup(Sender: TObject);
...
  TdxBarPopupMenu(Sender).BarManager.SelectedItem.Item.Caption;

Всего записей: 48 | Зарегистр. 04-09-2006 | Отправлено: 12:08 13-01-2009
VitOs2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andy_BitOff
Ура! Заработало! Спасибо огромное!
Всем хорошего настроения!

Всего записей: 54 | Зарегистр. 18-03-2008 | Отправлено: 12:19 13-01-2009
vavavol



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите, пожайлуста! После летних версий девок (июльских) решил перейти на декабрьские. При компиляции:  
 
[DCC Error] UnFmConnect.pas(6): F2051 Unit cxClasses was compiled with a different version of dxCore.dxShortStringToString  
 
Что делать? Вроде перед установкой новой версии и чистить-то особо нечего. Да и раньше при переходе таких проблем не было

Всего записей: 181 | Зарегистр. 25-01-2006 | Отправлено: 12:27 13-01-2009
Andy_BitOff



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vavavol
Плохо удалил старую версию. Попробуй снова.

Всего записей: 48 | Зарегистр. 04-09-2006 | Отправлено: 13:49 13-01-2009
Dmiro

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vavavol
Так проблему решил или нет?
А то в соседнем форуме пишешь "deinstall/install июльской версии снимает проблему".
Такое сообщение возникает если где-то в путях затесался старый dcu-файл, а путь к исходникам не прописан в <Library Path>.
Я обычно делаю так:
ВСЕ пути к сорсам всех компонент прописываю в <Library Path>.
В каталоге проекта создаю подкаталог типа DCU, и в опциях проекта указываю <Unit output directory DCU>.
После обновления каких-то компонент очищаю подкаталог DCU. После этого ребилд проекта.
А "почистить" означает удалить все файлы DCU, DCP, BPL от старых компонент. Ну и сорсы тоже.
И еще, в декабрьской по сравнению с июльской версией изменился набор файлов сорсов.
Часть была удалена.

Всего записей: 100 | Зарегистр. 15-04-2002 | Отправлено: 13:50 13-01-2009
VitOs2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выскочила еще одна проблемка!
Поставил версию DevExpress 41. (Delpni 2007)
В гриде 67 колонок ( будет немного больше). Когда хочу в рантайме отключить/включить некоторые путем нажатия на кнопку ColumnQuickCustomization то выскакивает сообщение:
 
The number of items cannot be greater than 64, if the EditValueFormat is cvfInteger.
 
Покопавшись в инете, я так понял, что при кастомизации колонок используется компонент TcxCheckListBox в котором по умолчанию свойство EditValueFormat = cvfInteger, значение которого не может быть больше 64. Поэтому, и выскакивает ошибка. Для TcxCheckListBox есть решение - поставить другой формат (например, cvfCaptions).
Но как быть с колонками?  
Может кто что подсказать?
Спасибо!
 
Добавлено.
Пока что решил следующим образом:
Переустановил компоненты. Перед компиляцией изменил в файле
cxCheckListBox.pas
строки:
 
property EditValueFormat: TcxCheckStatesValueFormat read FEditValueFormat
      write SetEditValueFormat default cvfStatesString;
и
 
constructor TcxCustomCheckListBox.Create(AOwner: TComponent);
...
FEditValueFormat := cvfStatesString;
 
Поменял cvfInteger на cvfStatesString.
То-есть, по умолчанию чтоб был другой формат. В результате заработало. На сайте разработчиков говорится, что ставят по умолчанию для совместимости с проэктами пользователей. Поскольку с самого начала было именно так.
 
Не самое, как мне кажется удачное решение, но пока меня устраивает.

Всего записей: 54 | Зарегистр. 18-03-2008 | Отправлено: 17:43 13-01-2009 | Исправлено: VitOs2, 19:19 13-01-2009
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Но как быть с колонками?  
Может кто что подсказать?

Насколько я помню - никак. Это ограничение Девок.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 19:13 13-01-2009
brookson



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго всем времени суток, а также с прошедшими и наступающими праздниками!
 
Неожиданно наткнулся на странный глюк, то ли проблему. Есть cxLookupComboBox. У него заполнены, как обычно, ListSourse, ListFieldNames, KeyFieldNames.
Когда пользователь выбирает значение из списка, у cxLookupComboBox меняется значение EditValue, Как и должно быть. Но почему-то указатель записи в ListSourse-датасете не меняется, а остаётся на первой записи.
Пробовал менять стандартный датасет на квери  - не помогло. KeyFieldNames у меня - это Primary key.
 
Огромная просьба - подскажите, что еще сделать/попробовать. К слову, DevExpress x.40

Всего записей: 139 | Зарегистр. 06-09-2007 | Отправлено: 21:29 13-01-2009
infomSB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brookson
Это не глюк. Использование ЛукАпов изначально подразумевает не влияение на фокус в датасете, хотите чтобы фокус менялся синхронизируйте вручную или используйте не LookUpComboBox

Всего записей: 75 | Зарегистр. 17-03-2006 | Отправлено: 22:38 13-01-2009
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
brookson
Properties.ListOptions.SyncMode

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 01:20 14-01-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2
ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru