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

» Использование DevExpress 2

Автор: sam291074
Дата сообщения: 11.01.2009 20:39
В cxVGride есть ряд строк. В цикле пытаюсь организовать запись в файл из этой таблицы по типу "Параметр-значение". В качестве параметра использую имя строки

Код: cxVGrid->Rows->Items[i]->Name
Автор: X11
Дата сообщения: 12.01.2009 09:21
VerticalGridRowName.properties.value
Автор: X11
Дата сообщения: 12.01.2009 14:15

Код:
Var
i:integer;
v: variant;
begin
for I := 0 to vgOptions.Rows.Count - 1 do
v := (vgOptions.Rows[i] as TcxEditorRow).Properties.Value;
Автор: VitOs2
Дата сообщения: 12.01.2009 15:02
Помогите, пожалуйста!
В общем так.
Условие.
Есть Форма. На ней TdxRibbon и, соотвественно, TdxBarManager.
Есть три кнопки TdxBarLargeButton. (dxBarLargeButton1, dxBarLargeButton2, dxBarLargeButton3). (По этим кнопкам устанавливаются три разных вида таблицы).
Свойства этих кнопок ButtonStyle = bsCheckedDropDown (то-есть, половина - кнопка, половина - всплывающее меню).
Свойство этих кнопок GroupIndex у всех 1 (чтоб все вели себя как радио-батоны).
В свойство этих кнопок DropDownMenu присваивается dxBarPopUpMenu1.
Для простоты, пусть в dxBarPopUpMenu1 один айтем dxBarButton1 (Установить вид таблицы).
Задача
При нажатии на кнопку (из меню dxBarPopUpMenu1) dxBarButton1 узнать через какую из кнопок dxBarLargeButton1, dxBarLargeButton2, dxBarLargeButton3 было вызвано это меню.
Спасибо!
Автор: sam291074
Дата сообщения: 12.01.2009 19:41
X11
Спасибо, так и сделал.

Код: ((TcxEditorRow*)(cxVGrid->Rows->Items[i]))->Properties->Value
Автор: wbsg
Дата сообщения: 13.01.2009 09:03
VitOs2


Цитата:

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


Tag'и не помогают?
Автор: Andy_BitOff
Дата сообщения: 13.01.2009 09:07
VitOs2
Нет времени попробовать и посмотреть, но на вскидку события кнопки click, popinit или что-то типа.
Автор: VitOs2
Дата сообщения: 13.01.2009 09:55
Andy_BitOff
wbsg
Чего-то никак не получается... Еще будут идеи?
Автор: infomSB
Дата сообщения: 13.01.2009 10:31
VitOs2
Есть топорная идея (применять только если ничего не поможет):
Оценивать положение мышки в событии OnPopup твоего меню, и смотреть если координаты подходят под кнопку то значит она и вызывала, единственно что надо разобраться как получить координаты кнопок в риббоне.
Автор: VitOs2
Дата сообщения: 13.01.2009 11:07
infomSB
Спасибо за ответ. Топорно, я впринципе реализовал (три разных менюшки, куча обработчиков завязанных на тегах). Но мне это очень не нравится. Думал, может, кто-то "поправильнее" подскажет...
Автор: Andy_BitOff
Дата сообщения: 13.01.2009 11:08
VitOs2
Вот твоя кнопка, точнее ее заголовок:
procedure TForm1.dxBarPopupMenu1Popup(Sender: TObject);
...
TdxBarPopupMenu(Sender).BarManager.SelectedItem.Item.Caption;
Автор: VitOs2
Дата сообщения: 13.01.2009 11:19
Andy_BitOff
Ура! Заработало! Спасибо огромное!
Всем хорошего настроения!
Автор: vavavol
Дата сообщения: 13.01.2009 11:27
Помогите, пожайлуста! После летних версий девок (июльских) решил перейти на декабрьские. При компиляции:

[DCC Error] UnFmConnect.pas(6): F2051 Unit cxClasses was compiled with a different version of dxCore.dxShortStringToString

Что делать? Вроде перед установкой новой версии и чистить-то особо нечего. Да и раньше при переходе таких проблем не было
Автор: Andy_BitOff
Дата сообщения: 13.01.2009 12:49
vavavol
Плохо удалил старую версию. Попробуй снова.
Автор: Dmiro
Дата сообщения: 13.01.2009 12:50
vavavol
Так проблему решил или нет?
А то в соседнем форуме пишешь "deinstall/install июльской версии снимает проблему".
Такое сообщение возникает если где-то в путях затесался старый dcu-файл, а путь к исходникам не прописан в <Library Path>.
Я обычно делаю так:
ВСЕ пути к сорсам всех компонент прописываю в <Library Path>.
В каталоге проекта создаю подкаталог типа DCU, и в опциях проекта указываю <Unit output directory DCU>.
После обновления каких-то компонент очищаю подкаталог DCU. После этого ребилд проекта.
А "почистить" означает удалить все файлы DCU, DCP, BPL от старых компонент. Ну и сорсы тоже.
И еще, в декабрьской по сравнению с июльской версией изменился набор файлов сорсов.
Часть была удалена.
Автор: VitOs2
Дата сообщения: 13.01.2009 16:43
Выскочила еще одна проблемка!
Поставил версию 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.
То-есть, по умолчанию чтоб был другой формат. В результате заработало. На сайте разработчиков говорится, что ставят по умолчанию для совместимости с проэктами пользователей. Поскольку с самого начала было именно так.

Не самое, как мне кажется удачное решение, но пока меня устраивает.
Автор: afiget
Дата сообщения: 13.01.2009 18:13

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

Насколько я помню - никак. Это ограничение Девок.
Автор: brookson
Дата сообщения: 13.01.2009 20:29
Доброго всем времени суток, а также с прошедшими и наступающими праздниками!

Неожиданно наткнулся на странный глюк, то ли проблему. Есть cxLookupComboBox. У него заполнены, как обычно, ListSourse, ListFieldNames, KeyFieldNames.
Когда пользователь выбирает значение из списка, у cxLookupComboBox меняется значение EditValue, Как и должно быть. Но почему-то указатель записи в ListSourse-датасете не меняется, а остаётся на первой записи.
Пробовал менять стандартный датасет на квери - не помогло. KeyFieldNames у меня - это Primary key.

Огромная просьба - подскажите, что еще сделать/попробовать. К слову, DevExpress x.40
Автор: infomSB
Дата сообщения: 13.01.2009 21:38
brookson
Это не глюк. Использование ЛукАпов изначально подразумевает не влияение на фокус в датасете, хотите чтобы фокус менялся синхронизируйте вручную или используйте не LookUpComboBox
Автор: afiget
Дата сообщения: 14.01.2009 00:20
brookson
Properties.ListOptions.SyncMode
Автор: DumnedAspid
Дата сообщения: 14.01.2009 07:49
Кто использует последние DevExpress, подскажите, в cxTableView еще не появилась возможность скрыть бокс ручной настройки фильтра?
Автор: Andy_BitOff
Дата сообщения: 14.01.2009 08:55
DumnedAspid
Это какой бокс ты имеешь в виду?
Автор: Granmer
Дата сообщения: 14.01.2009 09:12
DumnedAspid
Вроде всегда была, в свойствах tableview -> filter box -> visible -> fvNever
Автор: vavavol
Дата сообщения: 14.01.2009 09:35
Dmiro

Да всё так и делал. Ведь не в первый раз же. Уж с 2004 года сорцы менялись же. Старые dcu и др. при инсталляции (не исхитрялся) находяться в C:\Program Files\Developer Express Inc\Library\Delphi11. Ну, и руны в system32. При деинсталле всё убиваеться. Проверял. Привычка давно в проекте папку DCU создавать. Убиваю, не задумываясь. Проблему не решил, перешёл на июльскую версию. Времени нет просто


Добавлено:
Да и, судя по всему, там проблемки есть (в декабрьской). Кстати, в ноябрьской у меня такая-же проблема была
Автор: DumnedAspid
Дата сообщения: 14.01.2009 10:18
Granmer
Возможно мы о разном говорим. Я про класс TcxGridDBTableView. Там нет этого:

Цитата:
tableview -> filter box -> visible -> fvNever

Автор: Granmer
Дата сообщения: 14.01.2009 10:34
2DumnedAspid
Да вроде у меня так же называется... Вот пикча:
http://picasaweb.google.com/lh/photo/88FEXsvYAeIJ4sniKgC4Xw?feat=directlink
Автор: afiget
Дата сообщения: 14.01.2009 10:34
DumnedAspid
Есть. Описан в TcxCustomGridTableView. Посмотри еще раз.
Автор: DumnedAspid
Дата сообщения: 14.01.2009 12:22
Granmer
afiget
А действительно есть, просто мой инспектор его не отображает
Здравствуй старый Новый год..
Автор: brookson
Дата сообщения: 14.01.2009 14:56
infomSB, afiget - спасибо за идеи, вечером попробую.
Автор: brookson
Дата сообщения: 14.01.2009 21:00
Поставил Properties.ListOptions.SyncMode в true - всё заработало - спасибо!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


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