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

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

Автор: wbsg
Дата сообщения: 30.03.2011 11:01
X11

Код:
...
CheckBox: TcxEditorRow;
...

var
CheckComboboxItem: TcxCheckComboboxItem;
i: Integer;
ACheckBox: TcxCheckComboboxProperties;
AValue: string;
begin
ACheckBox := TcxCheckComboboxProperties(CheckBox.Properties.EditProperties);
ACheckBox.EditValueFormat := cvfStatesString;
ACheckBox.Items.BeginUpdate;
ACheckBox.Items.Clear;
for i := 1 to 5 do
begin
CheckComboboxItem := ACheckBox.Items.AddCheckItem('item ' + IntToStr(i));
CheckComboboxItem.Tag := i;

AValue := CheckBox.Properties.Value;
if (i mod 2) <> 0 then
AValue := AValue + '0'
else
AValue := AValue + '1';
CheckBox.Properties.Value := AValue;

end;
ACheckBox.Items.EndUpdate;
end;
Автор: X11
Дата сообщения: 30.03.2011 15:12
Есть cxGrid, не подключенный к базе (TcxGridTableView).
В нем есть колонка типа LookupCombobox

Получаю значения этого поля в цикле по гриду таким образом:

Код: sIS := grid2.DataController.Values[iRec, colIS.Index]
Автор: Figaro2000
Дата сообщения: 31.03.2011 07:45
golkanavt

Цитата:
Кто нибудь сталкивался с задачей "процентной" отрисовки результатов группировки в гриде в зависимости от значений group summary?


как только слышу про операции над агрегатами (суммами, средними значениями, максимумами, минимумами и тд) - это в OLAP... Присмотрись в первую очередь к HierCube, у него есть и свой чарт (надстроенный над TeeChart), и неплохой модуль интеграции с FastReport.
Автор: mdid
Дата сообщения: 31.03.2011 14:23
народ подскажите плз как раскрасить выпадающий список LookupComboBox
то есть есть грид в нем поле типа LookupComboBox...а вот как в зависимости от значения выкрасить значения выпадающего списка?
Автор: tanaseduard
Дата сообщения: 31.03.2011 14:56
Назрел вопрос по скинам.
1. Как бороться с тормозами перерисовки родных скинов Dev V55 (насколько заметил в основном на Windows 7)
2. Есть ли альтернативные пакеты/компоненты чтоб "скиновать" компоненты дев и другие( в том числе окна, диалоги и т.д.)?
3. Скины от дев "скинят" другие компоненты не Dev?
4. Как заставить менюшку cxGrid скиниться?

Спасибо.
Автор: Cryogen2003
Дата сообщения: 31.03.2011 14:56
mdid
Попробовать заменить на ExtLookupComboBox, привязать к гриду, а грид уже красить своими стандартными способами. По другому никак.

Добавлено:
tanaseduard
1. Никак, вроде обещают в 56 поправить этот глюк
2. Компоненты такие есть, но девовские компоненты они не скинят (AlphaControls, DynamicSkinForm)
3. Вроде только форму могут скинить
4. Все зависит от менюшки грида. Перейти например на менюшку баровскую от девок.
Автор: marser
Дата сообщения: 31.03.2011 15:36
Есть TcxDBVerticalGrid. В нем есть TcxDBMultiEditorRow. Как определить Index cфокусированной ячейки редактирования (cxDBMultiEditorRow.Properties.Editors[Index])?
Автор: Czechoslovak
Дата сообщения: 01.04.2011 08:24
marser
Кроме Index есть еще AbsoluteIndex, может через него?
Автор: volliriks
Дата сообщения: 01.04.2011 09:33
Помогите реализовать в С#)) как синхронизировать работу двух XtraScheduler на одной форме, то есть при изменении вида отображения и перемещения по дням, вид представления времени менялся на обоих?
http://forum.ru-board.com/forall/ajax/insert_tags/blank.gif

Добавлено:
КАРТИНКА ВОТ


Добавлено:
Не получается выложить картинку...вот ссылка
http://img696.imageshack.us/i/64392082.png/
Автор: marser
Дата сообщения: 01.04.2011 10:06
Czechoslovak

Цитата:
Кроме Index есть еще AbsoluteIndex, может через него?

Cформулирую вопрос по-другому. cxDBMultiEditorRow cостоит из двух ячеек, то есть cxDBMultiEditorRow.Properties.Editors.Count = 2. Одна из ячеек получила фокус ввода. Пусть, например, на форме есть SpeedButton. Как мне в обработчике сообытия SpeedButton.OnClick определить в какой из ячеек cxDBMultiEditorRow (первой или второй) находится фокус ввода?
Автор: golkanavt
Дата сообщения: 01.04.2011 12:31

Цитата:
как только слышу про операции над агрегатами (суммами, средними значениями, максимумами, минимумами и тд) - это в OLAP... Присмотрись в первую очередь к HierCube, у него есть и свой чарт (надстроенный над TeeChart), и неплохой модуль интеграции с FastReport.

у меня все таки несколько иная задача - дать пользователю возможность сходу по группировке выявить наибольшее\наименьшее значение, не усложняя имеющийся инструментарий. хотя возможны вы и правы, и не стоит изобретать велосипед.
Автор: GuSoft2007
Дата сообщения: 01.04.2011 13:27
На форме dxSkinController1, dxBarManager1 (+менюшка основная dxBarManager1Bar1) и несколько кнопок cxButton.
В Tab order формы вижу, что кроме кнопок есть еще 4 элемента ": TdxDockControl"
Когда между кнопками переключаешся Tab'ом все в порядке, табордер такой как задан. А когда стрелочками, то после того как по всем кнопкам пробежался на 4 нажатия фокус с кнопок пропадает непонятно куда (т.е. я думаю что на те 4 элемента TdxDockControl). На 5 нажатии снова табордер первый из списка и фокус на первой кнопке появляется. Как от этого избавиться?
В инспекторе объектов элементов ": TdxDockControl" нет и нигде не могу найти (dxBarManager1Bar1 и dxBarManager1) какието свойства типа TabStop. Как их из табордера убрать или сделать чтобы с кнопок фокус не пропадал?
Автор: Figaro2000
Дата сообщения: 03.04.2011 00:05
golkanavt

Цитата:
хотя возможны вы и правы, и не стоит изобретать велосипед.

Аха, не стоит ... тем более, что в HierCube'овском гриде есть возможность автоматической подсветки ячеек по зависимости от величины агрегата - от синего (наименьший) до красного (наибольший). Интересно, а DevExpress в своем Pivot-е подобное реализовал?
Автор: Graach
Дата сообщения: 03.04.2011 13:11
marser
Там случайно в cxDBMultiEditorRow нет свойства вида FocusedRow?
Автор: SIgor33
Дата сообщения: 04.04.2011 15:04
Подскажите как программного вызвать пункт popupmenu которое соответствует колонке(TcxGridDBColumn) соответствующей вьюхи (TcxGridDBTableView) у которой в качестве Properties (TcxImageProperties) TcxImage. А подменю вызвать например open image. (Не хочется создавать новый диалог выбора файла имиджа) А если меню есть по правой кнопке значит как-то можно в проге вызвать сего пункт
Автор: mdid
Дата сообщения: 04.04.2011 16:42
народ а подскажите плз...есть ли в гриде (TableView) в определенном поле контроль уникальности ввода? (без учета перебора) или на худой конец простой поиск по колонке?а то я чет вообще не могу найти
спасибо
Автор: marser
Дата сообщения: 05.04.2011 07:09
mdid

Цитата:
народ а подскажите плз...есть ли в гриде (TableView) в определенном поле контроль уникальности ввода?

Нет

Цитата:
или на худой конец простой поиск по колонке?

TableView.DataController.FindRecordIndexByKey, TableView.DataController.FindRecordIndexByText

Добавлено:

Цитата:
без учета перебора

А чем перебор плох? Поиск и есть перебор.
Автор: mdid
Дата сообщения: 05.04.2011 08:12
marser
та перебором то я сейчас и делаю...думал может есть что то встроенное уже
в любом случае пасиб
Автор: bukerman1975
Дата сообщения: 05.04.2011 11:53
уважаемые знатоки!
может быть вопрос уже обсуждался, найти не могу.
проблема такая, если в cxGrid поставить тип колумна - CurrencyEdit, в DisplayFormat - ",0.00;-,0.00", то инкрементальный поиск работает только до разделителя разрядов. то есть например есть число "123 456", так вот поиском выделяются только "123", дальше на нажатие "4" - грид не реагирует. естесственно incsearch везде стоит true. в чем фокус? версия 3.2.2
со старыми девками такого не было, все работало нормально...

Добавлено:
извините ошибся, использую версию 6.24
3.2.2 - было до этого, на него и ссылаюсь
Автор: wsoul
Дата сообщения: 06.04.2011 08:35
marser, забыл что здесь отписывался - нагуглил тогда ответ сам - http://www.devexpress.com/Support/Center/p/Q184175.aspx
Всё равно спасибо.
Автор: ultima
Дата сообщения: 06.04.2011 23:02
за эту строчку
TPicture.RegisterFileFormat('PNG', 'PNG graphics from DevExpress', TdxPNGImage);
ФастФуду DevExpress надо руки оторвать
Автор: vladman
Дата сообщения: 07.04.2011 02:22
ultima

Цитата:
за эту строчку
TPicture.RegisterFileFormat('PNG', 'PNG graphics from DevExpress', TdxPNGImage);
ФастФуду DevExpress надо руки оторвать

Каким образом ваше сообщение, ultima, относится к обмену опытом, обсуждению нюансов и решению проблем возникающих при использовании библиотеки компонент Developer Express? Что вы этим хотите сказать, доказать?
Автор: NickNNN
Дата сообщения: 07.04.2011 11:02
Добрый день

Решил поменять в приложении стандартный Грид на CxGrid. Все уже переделал, благодаря форуму много глупых вопросов решилось само собой.

остался последний момент, который не получается решить красиво.

При отмене фильтра в таблице может быть более 20К записей, соответственно время загрузки в Non Grid Mode около минуты. Как можно реализовать процесс визуализации прогресса загрузки? Все понимают, что такой объем и такая функциональность не могут работать мгновенно, но новые пользователи начинают нервничать, пиная на "зависание программы"

На какое событие лучше всего повесить изменение прогресса загрузки? Я так понимаю специального события типа OnLoadRecord не предусмотрено. Я повесил на

Style.ONGetContentStyle

Текст вроде такого:

TGuage.Progress:=cxGridOffersDBTableView.DataController.RowCount

предварительно сделав

TGuage.MaxValue:=dataSet.RecordCount

Может есть способ проще?

заранее благодарен за помощь
Автор: ultima
Дата сообщения: 07.04.2011 11:23
Я поставил для ознакомления компоненты DevExpress, и обнаружив что проект скомпилированный на Delphi с установленными DevExpress компонентами становится непереносимым, на Delphi с пакетом PNGImage пропадают PNG картинки на кнопках из-за переопределения типа PNGObject.
Неудобно.
Автор: NickNNN
Дата сообщения: 07.04.2011 12:09

Цитата:
На какое событие лучше всего повесить изменение прогресса загрузки? Я так понимаю специального события типа OnLoadRecord не предусмотрено. Я повесил на
Style.ONGetContentStyle


Отвечаю сам себе - этот способ не работал.

Буду править исходный код, а именно

procedure TcxCustomDataController.LoadStorage;

Добавить в него событие OnAfterRecordLoaded

Иначе никак
Автор: mdid
Дата сообщения: 07.04.2011 12:11
NickNNN
а вы не перегибаете выводя усеру 20к записей?что 20к записей скажут ему?простите но за такое я бы просто отпинал вас будь я вашим начальником..да и усер вправе требовать вашей кастрации за такой подход
ПС
для справки..усеру выводится ровно столько записей сколько ему нужно...а не все что есть
ПСС
не правильно выразился..не выводится...а запрашивается из БД
Автор: marser
Дата сообщения: 07.04.2011 13:15
NickNNN

Цитата:
При отмене фильтра в таблице может быть более 20К записей, соответственно время загрузки в Non Grid Mode около минуты. Как можно реализовать процесс визуализации прогресса загрузки?
На какое событие лучше всего повесить изменение прогресса загрузки?

DataController.OnFilterRecord
Автор: NickNNN
Дата сообщения: 07.04.2011 13:59

Цитата:
а вы не перегибаете выводя усеру 20к записей?что 20к записей скажут ему?



mdid, конечно это глупость отображать столько записей. Я хочу сделать, чтобы при этом программа не подвисла на несколько минут, а медленно шел прогресс. И в следующий раз пользователь думал, а нужно ли ему столько или все таки пора определится с периодом отображения данных, как ему рекомендовали.



Добавлено:
marser

DataController.OnFilterRecord вызывается для записей уже после их загрузки в DataController, а не во время. Если посмотреть код TcxCustomDataController.LoadStorage, то там нет никаких событий. Только править самому
Автор: blckjck
Дата сообщения: 07.04.2011 15:08
товарисчи, подскажите!
в классе TcxTreeListNode есть свойства Values и Texts. Как изменить их количество?
Автор: X11
Дата сообщения: 07.04.2011 15:29
Количество чего?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


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