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

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

Автор: BlackVetal
Дата сообщения: 04.08.2011 06:03
QETUORFV
пологике - если передать фокус PivotGrid - он сам должен сделать фокус на первую ячейку.
Автор: QETUORFV
Дата сообщения: 04.08.2011 08:31
фокус на грид не спасает.
Получилось так:

const ppp: TPoint = (X: 0; Y: 0);
........
PivotGrid.ViewData.FocusedCell := ppp;

и при открытии грида фокус таким образом можно поставить на любую ячейку.
Автор: Czechoslovak
Дата сообщения: 04.08.2011 08:50
QETUORFV
пример есть в хэлпе
TcxPivotGridViewDataSelection.FocusedCell

Specifies the position of the focused data cell in the column-row matrix coordinates.

property FocusedCell: TPoint;

Description
The TPoint record stores indexes of column and row the focused data cell belongs to. X specifies the column index, and Y specifies the row index.
For example, to programmatically focus a data cell that lies at the intersection of the first column and the second row, make an assignment as shown below:

// Delphi

PivotGrid.ViewData.Selection.FocusedCell := Point(0,1);

// C++ Builder

PivotGrid->ViewData->Selection->FocusedCell = Point(0,1);

To remove cell focus from a pivot grid, set the FocusedCell property to (-1,-1).


И в общем константу заводить смысла нет...
Автор: mdid
Дата сообщения: 04.08.2011 15:16
слушайте народ...может как то фак писнем? если его еще конечно нет в сети
это навеяно тем что на прошлой неделе я потратил пол дня на написание одной хреновины...а потом оказалось что в гриде есть галка которая это все делает

можно его как в шапку всунуть так может и мини клиент забабахать с локальной бд..типа оффлайн фака?
Автор: vladman
Дата сообщения: 04.08.2011 15:22
mdid

Цитата:
слушайте народ...может как то фак писнем?...
можно его как в шапку всунуть так может и мини клиент забабахать с локальной бд..типа оффлайн фака?

Так уже есть - называются документация и саппорт центр. Навряд ли у нас получится лучше. ))
Автор: mdid
Дата сообщения: 04.08.2011 15:37
vladman
я имел ввиду русскую...с адекватным поиском и заголовками..а то иногда мудохаешься а оно под боком все и все просто
Автор: GSirr
Дата сообщения: 04.08.2011 16:09
Проще перевести уже существующую, чем писать самим.
Автор: mdid
Дата сообщения: 05.08.2011 09:27
ну и ладно(

вопрос..как сделать выравнивание по левому краю числового значения колонки в гриде?
а то у меня в одном справочнике одна видимая колонка...и при открытии такое чувство что он пуст..и только приглядевшись видно что справа есть значения
Автор: Czechoslovak
Дата сообщения: 05.08.2011 10:38
mdid
Определи Properties, на пример CurrencyEdit, там будет ввыравнивание Alignment
Автор: mdid
Дата сообщения: 05.08.2011 10:53
Czechoslovak
я ставил textedit...не помогло..а оно оказывается автоматом меняет выравнивание после открытие кверины
Автор: LePeR
Дата сообщения: 05.08.2011 11:32
Подскажите пожалуйста, пишу программу загрузки файлов. Каждая загрузка в потоке = запись в таблице. Для того чтобы отображать статус загрузки в колонке делаю из потока синхронизацию с выполнением OnGetProperties, в методе использую репозиторий свойств типа TcxEditRepositoryProgressBar, создаю экземпляр для каждой записи и изменяю статус в соответствии с переменной потока. Всё вроде бы работает, но при сортировке, ячейки статуса не меняют своего положения. Как вызвать метод OnGetProperties для колонки статуса, при сортировке любой из колонок? Заранее спасибо.
Автор: mdid
Дата сообщения: 05.08.2011 11:55
тут еще назрел вопрос...
есть кверина с набором данных который вываливается в cxLookupComboBox ..так вот как сделать так что бы при ручном вводе несуществующего значения в кверине сам cxLookupComboBox не очищался? DropDownListStyle как lsEditList не помох...хотя в ehlib работает
Автор: X11
Дата сообщения: 05.08.2011 12:37
IsEditFixedList или IsFixedList?
Автор: mdid
Дата сообщения: 05.08.2011 12:51
X11
описанные вами не дают возможности ввода любого текста
а lsEditList дает...но не сохраняет значение

понял...если поставить ключевое поле не как ID а как наименование..то все норм..хотя это тупо
Автор: tanaseduard
Дата сообщения: 05.08.2011 14:06
Поставил новую сборку от Feandy(2011.1.5, была x56).
Начал перекомпиливать свои библиотеки.
Ругается что неизвестная константа cxGridCardDefaultIndent.
Ранее все было ок.
Что делать?
Автор: X11
Дата сообщения: 05.08.2011 14:24
Надо порыться с Breaked Changes у них на сайте

Добавлено:
Возможно её перенесли в другой модуль или изменили имя, или заменили на другую константу. Нужно поискать в исходниках.

Добавлено:
В версии 2011 1.3 cxGridCardDefaultIndent находится в модуле: cxGridCardView и имеет значение 7
Автор: tanaseduard
Дата сообщения: 05.08.2011 15:01
X11
В 2011.1.5 его уже там нету...
Поехали дальше....
Переделываю класс для работы со скинами
Автор: X11
Дата сообщения: 05.08.2011 15:31
У грида активирована верхняя строка для добавления записей NewItemRow.Visible
Не могу понять, как перемещаться с помощью клавиатуры по это строке влево и вправо для заполнения поле?
Tab перекидывает сразу на другой элемент.

Enter сразу добавляет новую запись в грид, т.к. у меня есть такое событие:

Код:
procedure TfmSite.dbgOlxRubEditKeyDown(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) and (TcxGridTableView(Sender).datacontroller.IsEditing) then
TcxGridTableView(Sender).datacontroller.Post;
end;
Автор: LePeR
Дата сообщения: 06.08.2011 15:07
Где можно внятную инфу найти по событиям cxGridDBTableView, а именно по Properties ячеек? Так и не решил свой вопрос: http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=2880#12. Спасибо.
Автор: marser
Дата сообщения: 06.08.2011 18:39
LePeR

Цитата:
Где можно внятную инфу найти по событиям cxGridDBTableView, а именно по Properties ячеек?

В хелпе и саппорт центре.

Цитата:
Подскажите пожалуйста, пишу программу загрузки файлов. Каждая загрузка в потоке = запись в таблице. Для того чтобы отображать статус загрузки в колонке делаю из потока синхронизацию с выполнением OnGetProperties, в методе использую репозиторий свойств типа TcxEditRepositoryProgressBar, создаю экземпляр для каждой записи и изменяю статус в соответствии с переменной потока. Всё вроде бы работает, но при сортировке, ячейки статуса не меняют своего положения. Как вызвать метод OnGetProperties для колонки статуса, при сортировке любой из колонок?

Я не понял, зачем Вам событие OnGetProperties? Устанавите в дизайнере свойство колонки "статус" Properties как ProgressBar, или выбирете RepositoryItem как TcxEditRepositoryProgressBar. Положение индикатора в "градуснике" задается значением в ячейке. Это значение и нужно менять (cxGridTableView.DataController.Values[]) в процессе загрузки файла. А cобытие OnGetProperties предназначено для установки различный типов редакторов колонки для разных записей, например, для одной записи TeхtEdit, для другой LookupComboBox и т.д.
Автор: LePeR
Дата сообщения: 06.08.2011 21:19
marser
Признаю, не совсем точно описал проблему.
Если брать для колонки "статус" свойство Properties и ставить его как ProgressBar, то, как вы правильно заметили, "градусник" выставляется по значению ячейки, но если при этом выставить свойство ShowTextStyle в cxtsText, для отображения помимо градусника произвольного текста для каждой ячейки колонки - этого не достаточно. Решил вопрос с выполнением OnGetProperties и ARecordIndex. Всем спасибо.
Автор: GSirr
Дата сообщения: 08.08.2011 12:31
mdid
Может поздновато, но... Для выравнивания измени значения свойства alignment у поля в квери, привязанного к твоему гриду.
Автор: mdid
Дата сообщения: 08.08.2011 13:10
GSirr
я не создаю поля в кверине...как то у меня с этим не срослось..а с учетом что девы вредные то думаю им на эти потуги будет начхать..хотя могу ошибаться
Автор: LePeR
Дата сообщения: 08.08.2011 14:06
А подскажите: есть квери, одно из полей сделал LookupComboBox (список беру из другой таблы, KeyFieldName с ListFieldName прописано) как обработать его изменение? Т.е. listbox вываливается, а при выборе пустое поле (понятно что с кверью оно так не будет работать). А как должно быть недопру. Помогите?

Добавлено:
Разобрался, по событию OnCloseUp выполняется логика, но вот засада, у LookupComboBox напрочь отсутствует свойство KeyValue, соответственно я не могу отследить какой элемент выбран из второго датасета, курсор там не меняет положения.
Автор: X11
Дата сообщения: 08.08.2011 15:36

Цитата:
у LookupComboBox напрочь отсутствует свойство KeyValue

Use EditValue, Luke ))

Добавлено:
У TcxLookupComboBox в свойстве EditValue живет значение поля KeyValue.
Если нужно взять текст который виден в строке, то просто свойство Text:

Код: ShowMessage(<TcxLookupComboBox>.Text);
Автор: QETUORFV
Дата сообщения: 08.08.2011 15:42
Понадобилось сделать форму поиска по cxGrid-у, ничего не придумывая сделал один в один с формой поиска из библиотеки EhLib. Где-то в дебрях форума видел сообщение с просьбой чего-то подобного, выкладываю исходники. Сделал за один день, особо не тестил, возможны где-то косяки, по крайней мере меня вполне он устраивает.
Запускается подобно в EhLib
DBGridCxFindDlgs.ExecuteDBGridCxFindDialog(cxGrid1DBTableView1, '', '', nil, True);

Ссылка

ЗЫ: да простит меня автор EhLib, небыло времени свое что-нить придумать.
Автор: Cryogen2003
Дата сообщения: 08.08.2011 15:47
QETUORFV
Мог бы и тут просто спросить, я примерно такое же написал )))) И так же с EhLib брал пример )))))
Автор: QETUORFV
Дата сообщения: 08.08.2011 15:55
В следующий раз буду иметь в виду)) вдруг какой компонент понадобится.
Автор: LePeR
Дата сообщения: 08.08.2011 16:22
X11

Значение EditValue возворащает Null. При любом раскладе.
Можете пример привести получения KeyValue из таблицы lookupcombobox? Заранее благодарю.
Может быть потому что таблица из TAdoQuery - туда не предусмотрено добавление/изменение данных, т.е. combobox выпадает, но значение в таблицу не присваивается (как и должно быть в теории). А мне нужно чтобы значение выбралось, а потом я запрос переоткрываю.
Автор: Cryogen2003
Дата сообщения: 08.08.2011 16:27
LePeR
Давай сначала ты приведешь свой код, а так же часть кода DFM связанного с LookupComboBox

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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