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

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

Автор: Dennica
Дата сообщения: 21.10.2007 21:16
brookson
Ясно. Т.е. тебе мешает то, что грид дергает датасэт в то время как ты по нему ходишь? Если так, то просто отключи на время обновления контролов у датасэта
mastDataSet.disablecontrol;
detDataSet.disablecontrol;
try
...
finally
mastDataSet.enablecontrol;
detDataSet.enablecontrol;
end;

Кстати, мне интересно стало, для чего использовать мэмдата если в конечном итоге нужно писать в БД, почему не query с CachedUpdates = true ? =) . А чтобы перекинуть записи из одного набора в другой мне нравится компонент TxQuery или TCRBatchMove. Хотя, если структура идентична, можно через несложный цикл легко сделать.
Автор: brookson
Дата сообщения: 21.10.2007 22:43
Да, мысль отключить контролы тоже пришла мне в голову. Утром попробую. Пока спасибо
Автор: clear2121
Дата сообщения: 22.10.2007 11:04
Dennica, видно ты хорошо разбираешься в Девках
Ответь пожалуйста.
Я уже писАл, что мне надо разукрасить каждую строчку в гриде в зависимости от значения в определенном поле. В ГРИДЕ это колонка скрыта (назовем его ED). У меня такая конструкция
if ( ed->EditValue == 1 )
{
ACanvas->Brush->Color = clYellow;
ACanvas->Canvas->FillRect(AViewInfo->Bounds);
}
Как только я поменял значение в поле, меняется в гриде (делаю пока колонку видимой для отладки). Вся строка становится желтой. Перехожу на другую строку - все пропадает. Снова на эту строку - весь грид желтый, а мне надо, чтоб только эта строка ВСЕГДА была желтой. Перехожу далее - совершенна другая строка остается желтой. Научи как правильно, ПЛИЗ!

Цитата:
лучше делать в OnGetContentStyle.

Это нужно в редакторе стилей задавать стили и потом их применять? Но это же сколько ресурсов надо. Или я что то не понимаю. Подскажи, горю!

СПАСИБО!


Добавлено:
Повесил обработчик на TcxGridDBTableView
Автор: brookson
Дата сообщения: 22.10.2007 11:24
Dennica, отключение контролов помогло! спасибо

clear2121
Смотри, у меня кажется такая же кажется ситуация. Работает вот так:

procedure TFord.tv1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
begin

if tv1.datacontroller.values[ARecord.RecordIndex,0] then
astyle:=stred;
if not tv1.datacontroller.values[ARecord.RecordIndex,0] then
astyle:=stgreen;

end;

И описать эти 2 стиля.
Автор: greenpc
Дата сообщения: 22.10.2007 11:24
clear2121
если у TcxGridTableOptionsSelection
selselect :=flase то можно
процедура CustomDrawCell у TcxGridDBTableView

if (AViewInfo.GridRecord.Values[<колонка>.Index]=<значение>) then
ACanvas.SetBrushColor(clRed);
Автор: zver
Дата сообщения: 22.10.2007 15:47
clear2121
попробуй на событие TableView1CustomDrawCell повесить:


Код: if (!AViewInfo->RecordViewInfo->GridRecord->Values[ed->Index].IsNull()) {
if (AnsiString(AViewInfo->RecordViewInfo->GridRecord->Values[ed->Index])=="1") {
ACanvas->Brush->Color=clYellow;
}
Автор: clear2121
Дата сообщения: 23.10.2007 04:51
СПАСИБО ВСЕМ!
ПОЛУЧИЛОСЬ!!!
Не знаю как (может кто подскажет), но я хочу вам по +1 добавить.

СПАСИБО!
Автор: samusev
Дата сообщения: 23.10.2007 11:04
Доброго дня.

Подскажите, плз, решение такой задачи.
Есть приложение с Ribbon и PageControl
Каждый Tab риббона соответствует определенному Tab PageControl'a. Они также согласованы по Tag

Задача:
- при выборе закладки на PageControl - активизировать соответствующий Tab в Риббон-е
или
- при выборе закладки на Риббон - активизировать соответствующий Tab в PageControl

Чувствую что решение крутится вокруг OnTabChanged - но не получится ил зацикливания. Потому как придется переопределять этот метод у обоих объектов.
Автор: Dronton2
Дата сообщения: 23.10.2007 11:16
samusev
В Ribbon.OnTabChanged первым делом нужно проверить PageControl.ActivePage.Tag. Если она равна Tab.Tag риббона, то ничего делать не нужно. Аналогично - для PageControl.OnChanged. Таким образом можно будет избежать зацикливания.
Автор: samusev
Дата сообщения: 23.10.2007 11:34
Dronton2

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

Спасибо
Автор: questofworld
Дата сообщения: 23.10.2007 13:02
Кто-нибудь использовал cxDBRadioGroup компонент? Опишите, вкратце, плз!!!

Добавлено:
Разобрался - отбой.
Автор: Bill_PHO
Дата сообщения: 23.10.2007 13:53
Прошу подсказки.
Имею в дереве переменное число cxDBTreeListColumn (TFields в DataSet не определены из-за того, что количество колонок в дереве всегда переменное).
Каким образом я могу заставить колоночку, которой соответствует текущий cxDBTreeListColumn, отображаться в нужном формате - в данном случае в денежном?
Автор: Dronton2
Дата сообщения: 23.10.2007 14:59
Bill_PHO
На мой взгляд, правильнее всего было бы пользоваться элементами TcxEditRepository.
Т.е. создать несколько TcxEditRepositoryItem для разных типов данных и при инициализации дерева нужным колонкам присвоить RepositoryItem.
Автор: samusev
Дата сообщения: 23.10.2007 17:47
Туплю.

В готовом проекте (в связи с переходом на Скины и Риббон) надо сменить родителя главной формы. с TForm на TdxCustomRibbonForm.

Простое переписывание в файле МайнФорм.pas - не помогает что-то..
Где еще надо подправить?
Автор: Bill_PHO
Дата сообщения: 23.10.2007 18:25
Dronton2
Спасибо. Получилось.
Автор: Dronton2
Дата сообщения: 24.10.2007 09:50
samusev
В раздел uses нужно добавить dxRibbonForm.
А класс окна породить от TdxRibbonForm, например:
TMainForm = class(TdxRibbonForm)
Ну, ещё у риббона можно установить SupportNonClientDrawing := true;
Автор: IceMan T
Дата сообщения: 24.10.2007 12:37
Использовать TcxEditRepository в данном конкретном случае - не самый лучший вариант. Учитывая что кол-во колонок всегда переменное, то в репозитории необходимо сначала создать все необходимые Properties. Гораздо удобнее, на мой взгляд, использовать событие колонки OnGetProperties, и в зависимости от каких-либо условий создавать необходимые Properties.
Автор: Dronton2
Дата сообщения: 24.10.2007 13:51
IceMan T
Всё-таки, TcxEditRepository хорош тем, что для колонок одного типа, сколько бы их не было, нужно создать всего один элемент репозитория. Кроме того, такой подход приводит к единообразному виду полей во всей программе. Например, поменяв одно лишь свойство в репозитории, мы получим его изменение во всех колонках всей программы, использующих этот элемент репозитория. Да и при назначении новому полю, например LookupComboBox, проще один раз создать элемент репозитория, назначить ему примерно пять свойств, а затем его одним кликом назначать всем нужным колонкам.
Автор: IceMan T
Дата сообщения: 24.10.2007 14:36
Dronton2
Не спорю, репозиторий удобен. Но если мы говорим о таблице с переменным количеством полей, то для его использования придется предусмотреть все возможные варианты свойств.
Да, устанавливать свойства "одним кликом" удобно, но при проектировании статической таблицы. При построении динамического грида все таки удобнее использовать события.

Как вариант - в репозитории расположить наиболее распространенные варианты и выдергивать их оттуда при необходимости, а если, например, нужно какое-то свойство, отличающееся от стандартного ( сохраненного в репозитории ), то создавать его на основе сохраненного ( либо полностью заново ), и сохранять в том же репозитории.
Автор: Dronton2
Дата сообщения: 24.10.2007 15:59
IceMan T
Использование события OnGetEditProperties вызывается при каждом появлении встроенного редактора и при перерисовке значения поля, и поэтому не очень оптимален по времени. Быстрее будет определить свойства поля при его создании.

Событие OnGetEditProperties удобно использовать в случае, если в одном поле находятся разные типы значений, например:

Код: case string(aNode.Values[trRepParPAR_TYPE.ItemIndex])[1] of
'c': EditProperties := reposEdComboClient.Properties;
'f': EditProperties := edRepSelTree.Properties;
't': EditProperties := reposEdDet.Properties;
'w': EditProperties := reposEdMultiWH.Properties;
'A': EditProperties := reposEdAdv.Properties;
'B': EditProperties := reposEdCheckBox.Properties;
и т.д.
Автор: mfn9
Дата сообщения: 25.10.2007 12:27
Добрый день
есть 2 вопроса по dxFlowChart

1)как можно найти и выделить обьект по его содержимому
2)и как устанавливать в обьекте параметры содержимого текста(по центру,внизу,вверху.....)
Автор: AndRay1985
Дата сообщения: 25.10.2007 13:02
Здравствуйте.

Посоветуйте, пожалуйста, девЭкспрессовский контрол, который имеет внешний вид и функциональность похожие на стандартный ListView с View = LargeIcons (итемы представлены в виде больших иконок, внешне выглядит примерно как панель Windows Explorer'a).

Спасибо.
Автор: stalker780
Дата сообщения: 25.10.2007 14:10
Подскажите, если кто сталкивался....
Есть репозиторий гридов, там в одном из гридов делаю группировку по какой-нить колонке. Когда я этот грид привязываю к TcxDBExtLookupComboBox, при разворачивании группировка не отображается.
На старых версиях КвантумГрида, по-мойму 5-ке, эта фича работала, но уже давно пропала. Сейчас в 6-ке возникла необходимость в ней, а болт
Автор: Gaivoronsky
Дата сообщения: 26.10.2007 02:00
Сделал зеленный скин для DevExpressSkin. К-то нибудь хочет посмотреть? Куда выложить?
Спасибо за проявленный интерес.
Автор: Dronton2
Дата сообщения: 26.10.2007 08:15
Gaivoronsky
А скриншот посмотреть можно?
Автор: Dennica
Дата сообщения: 26.10.2007 15:00
Gaivoronsky
Мне тоже хотелось-бы взглянуть...
Автор: Gaivoronsky
Дата сообщения: 28.10.2007 03:04
А куда их выложить?
Автор: Dennica
Дата сообщения: 28.10.2007 08:23
Gaivoronsky
Да безразницы куда. На рапиду, айфолдер, депозит или куда еще...
Автор: Gaivoronsky
Дата сообщения: 29.10.2007 02:19
Это ресурс + заголовочный файл. Сами посмотрите...

http://rapidshare.com/files/65888898/Vista_Green.rar

Кому интересно могу выслать каталог проекта...
Автор: Widoms
Дата сообщения: 29.10.2007 10:17
Почему при Мaster Detail в CxGrid в подченной таблице перейти на последнюю запись и нажать кнопку вниз вылазиет Access Violation ?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

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


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