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

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

Автор: afiget
Дата сообщения: 28.04.2009 17:56

Цитата:
Да там и Cancel'а никакого не будет, т.к. при смене текущей записи в мастер гриде, детейл DataSet просто закрывается.

Да вроде бы должен быть. Ведь пользователь, по твоим словам, сначала в детайл что-то изменил (курсор ввода в детайл; у детайл режим редактирования).
Автор: Radio_Kat
Дата сообщения: 29.04.2009 07:54
jicoff

Можно название примера с использованием TcxGridCardView?
У меня установлен DevExpr_21_mar_2008_Demo
Там, вроде бы, во всех примерах используеться TcxGridDBCardView.
Как картинку из базы показать - это понятно.

infomSB

спасибо. попробую.
Автор: jicoff
Дата сообщения: 29.04.2009 12:20
afiget

А как любой редактор может восприпятствовать закрытию DataSet'a? Это только если самому вешаться на событие BeforeClose, но CX'ы этого не делают. Фокус то не меняется, а данных нет.

Radio_Kat

Действительно, не обратил внимание на то, что это не ДБ компонент. Но картинки все равно где-то должны быть загружены в память. Если говорить о EditValue, то полагаю это может быть либо массив Variant'ов, либо Stream. Можно использовать событие OnAssignPicture, если установлен редактор Image.

Автор: afiget
Дата сообщения: 29.04.2009 13:09
jicoff

Цитата:
А как любой редактор может восприпятствовать закрытию DataSet'a?

До закрытия датасета происходят события Validate, OnEditValueChanged у Properties. У меня сложилось впечатление, что ты эти события пропускаешь в своих рассуждениях.

Еще раз акцентирую внимание на этом: если мы редактируем поле в дочернем View, то для перемещения на другую запись в родительском View нам нужно сначала выйти из режима редактирования дочернего View. И даже если мы перемещаем курсор родительского View без явных действий с дочерним View, например, с помощью мыши или той же мышью нажимаем кнопку на панели инструментов (без фокуса), то все равно происходят события Validate, OnEditValueChanged у Properties дочернего View!
Автор: jicoff
Дата сообщения: 29.04.2009 14:40
afiget

У меня перехватываются нажатия клавиш вверх/низ, даже если ячейка уже редактируется Уже писал выше. Это сделано для того, чтобы после достижения последней записи в дочернем гриде, сменилась запись в мастер гриде, далее обновляются данные в дочернем гриде и текущей в нем становится самая верхнея. Ну и.д. В момент обработки события OnKeyDown никаких событий редактора не происходит. В обработчике определяю последнюю запись, если да, в местере меняется текущая запись, Key = 0, т.е. CX-редактор пропускает обработку OnKeyDown. Дело в том, что сам дочерний грид состоит из 2-х View, связанных как мастер-детейл. И там тоже надо по нажатию клавиш вверх/низ ходить только по дочернему View и пропускать все мастер записи.

Добавлено:
.

Добавлено:
Тут надо обратить внимание, что есть 2 разных грида и соответственно 2 разных датасета.
Автор: clear2121
Дата сообщения: 30.04.2009 09:44
ОГРОМЕННЕЙШАЯ ПРОСЬБА!!! НЕ могу поставитьпоследних (43) Девок на Билдер 2009 под Вистой. Везде ОШИБОЧКА...МЛЯ. Читал, но так и не понял, что и где исправлять. ПОМОГИТЕ ТУПОМУ!!! ПЛИЗ!!!
Автор: deadbitch
Дата сообщения: 30.04.2009 10:31
Форумчане, поделитесь сэмплом для следующей ситуации: в датасете два поля - Время и Значение. Хочется отобразить его графиком в dbChartView. Крутил-вертел, справку читал-читал, так и не получается ничего. Хочется диаграмму, чтобы по оси Х было значение, по оси Y было время.
Автор: X11
Дата сообщения: 30.04.2009 10:47
У Series есть DataSoutce. Выбери там тип DataSet. Затем выбери уже сам DataSet
Автор: deadbitch
Дата сообщения: 30.04.2009 12:55
X11

Цитата:
У Series есть DataSoutce. Выбери там тип DataSet. Затем выбери уже сам DataSet


У сериес есть только датабиндинг, а датасорс есть у всего чартвью. Вопрос остаётся открытым.
Автор: X11
Дата сообщения: 30.04.2009 13:17

Обвёл красным. Вот так в стандартном компоненте.
Автор: deadbitch
Дата сообщения: 30.04.2009 13:19
X11

Цитата:
Обвёл красным. Вот так в стандартном компоненте.


Эээ.. мы ведём разговор о TcxDBChartView?
Автор: X11
Дата сообщения: 30.04.2009 13:21
Кстати, в DevExpress я не могу найти Chart, OrgChart не в счёт.
Автор: deadbitch
Дата сообщения: 30.04.2009 13:56
X11
Он внутри QuatumGrid - TcxChartView/TcxDBChartView.
Автор: Postscriptum
Дата сообщения: 30.04.2009 16:18
Такой вопрос - у DBGrid из RX Lib есть свойство FixedCols, которое позволяет "заморозить" указанное количество столбцов. Не врубаюсь, как это сделать в девовском DBGrid'е
Автор: X11
Дата сообщения: 30.04.2009 16:20
Тебе нужно пересоздать грид. При создании грида выбери Banded....
Автор: Postscriptum
Дата сообщения: 30.04.2009 17:53
X11

Цитата:
ебе нужно пересоздать грид. При создании грида выбери Banded....

Не понял. Что значит "при создании грида"? Выбрал его на палитре компонентов и бросил на форму. Можно поподробнее?
Автор: X11
Дата сообщения: 30.04.2009 19:30
....бросил на форму. Нажми customize, удали текущий GridDBTableView, создай там новый и привяжи к текущему уровню. Когда будешь создавать, то выбери BandedTable

Добавлено:




DB Banded Table
Автор: Postscriptum
Дата сообщения: 01.05.2009 00:40
X11
Спасибо, разобрался. Теперь не пойму, где указать количество "замороженных" столбцов (добавил банд, но у него нет такого свойства)
Автор: X11
Дата сообщения: 01.05.2009 10:00
у элемента Band есть свойство FixedKind
Автор: Aleksandr_N
Дата сообщения: 02.05.2009 11:12
Никто не пользуется SMExport для экспорта данных из cxGrid? Он не корректно экспортирует данные. Может кто поправил экспорт?
Автор: X11
Дата сообщения: 02.05.2009 14:39
Aleksandr_N, а чем не устраивают родные процедуры экспорта?

Добавлено:
Дошло, у SMExport`а много форматов. Но если в Excel, то можно и родными процедурами.
Автор: vladman
Дата сообщения: 02.05.2009 21:00
Aleksandr_N

Цитата:
Цитата:
на следующей неделе

Я не против подождать.

Неделя немного затянулась, но все же, раз обещал - вот решение вопроса по подмене масок и появления маски в диалогах пользовательских фильтров. Надеюсь еще актуально.
Последний пост по этому вопросу
Итак, достаточно обработать событие <YourTableViewOnFilterDialogShow> следующим образом

Код:
<YourMaskColumn>.Properties := <YourEditRepositoryMaskItem2>.Properties;
Автор: Chukotka
Дата сообщения: 03.05.2009 01:29
Сломал мозг:

есть QuantumTreeList, переопределил процедуру OnCompare (в Node.Values[0] - строковые данные):

Код:
S1 := ANode1.Values[0];
S2 := ANode2.Values[0];
ACompare := AnsiCompareStr(S1, S2);
Автор: vladman
Дата сообщения: 03.05.2009 03:02
Chukotka

Цитата:
порядок строк остается прежним

Прежним правильным или что-то меняется? Скриншот или пример помог бы лучше понять Вашу проблему.
Автор: TechnoDreamer
Дата сообщения: 03.05.2009 03:24
Наверное глупый вопрос, но как передвинуть тулбары (TdxBar) в риббоне? Т.е. например, есть три тулбара - надо второй и третий поменять местами. Речь идет о design-time.
Автор: Chukotka
Дата сообщения: 03.05.2009 03:42
vladman

Цитата:
Прежним правильным или что-то меняется?

Отсортированным по алфавиту в правильном порядке. Т.е. если я строку "яяя" изменяю на "ааа", то после редактирования она корректно перемещается в начало списка.
При клике же на заголовке столбца в порядке строк не меняется ничего. При этом на шапке столбца изменяется значок порядка сортировки (стрелка вверх или вниз).
Автор: vladman
Дата сообщения: 03.05.2009 03:43
TechnoDreamer
Выбираем нужную вкладку, выбираем свойство Groups, в диалоговом оке <Editing YourRibbonTab.Groups> меняем порядок групп

Добавлено:
Chukotka
именно так и делал, вставлял Ваш обработчик - все ок!

Цитата:
то после редактирования она корректно перемещается в начало списка


Цитата:
При клике же на заголовке столбца в порядке строк не меняется ничего

А что должно меняться если уже все в нужном порядке?
Добавлено:
Ок, понял проблему, не работает обратная сортировка, оно и понятно, Вы же обработали только прямую. Нужно обработчик подправить так:

Код:
S1 := ANode1.Values[0];
S2 := ANode2.Values[0];
if <YourcxTreeList1cxTreeListColumn>.SortOrder = soAscending then
ACompare := AnsiCompareStr(S1, S2);
if <YourcxTreeList1cxTreeListColumn>.SortOrder = soDescendingthen
ACompare := AnsiCompareStr(S2, S1);
Автор: Chukotka
Дата сообщения: 03.05.2009 04:34
vladman

Цитата:
А что должно меняться если уже все в нужном порядке?

Должен меняться тип сортировки - по возраст \ убыванию
Автор: vladman
Дата сообщения: 03.05.2009 04:44
Chukotka
что-то я долго писал. См. сообщение выше )
Автор: Chukotka
Дата сообщения: 03.05.2009 04:59
vladman

Цитата:
Ок, понял проблему, не работает обратная сортировка, оно и понятно, Вы же обработали только прямую.

Спасибо! Подобное подозревал в самом начале, но подумал, что эту проверку логичнее делать внутри кода devx и там инвертировать порядок. Сейчас же поразмыслил, и понял, что был неправ.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

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


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