Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)

Модерирует : ShIvADeSt

ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

   

golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда
 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, Первая часть, вторая часть

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:31 07-02-2009 | Исправлено: vladman, 14:36 24-10-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Данные нужно менять в датасете, а не в гриде.

Я пробовал, если данные добавлять через датасет, то  записи добавляются также медленно, как и через грид.
Вот начало дискуссии на 80й странице
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123&start=1580#13
 
Добавлено:

Цитата:
Но у вас же DataController находится и не в provider и не в unbound

я думал, что provider-mode это когда грид привязан к датасету
 
Добавлено:
Получается, что в режиме BOUND нельзя добавлять записи в цикле через cxGrid?
 
Добавлено:
Ну что, ж нельзя так нельзя. Переделал на работу непосредственно с датасетом, с использованием DisableControls

----------
/не мы такие, жизнь такая/

Всего записей: 3260 | Зарегистр. 24-11-2005 | Отправлено: 12:28 05-10-2009
Chukotka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka

Цитата:
думаю что проблема в том что данные привязаны к TableView а не к Grid'y.
предлагаю так
 
Код:
<YourTcxCustomGridView>.Controller.Scroll(sbVertical, scLineDown, ScrollBy);
 
ScrollBy - переменная типа Integer
Спасибо большое, все работает.
 

Всего записей: 429 | Зарегистр. 01-11-2006 | Отправлено: 12:50 05-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Итак, что-то я совсем запутался как работает OnCustomDrawCell в TcxGridDBTableView. Как точно знать, где находиться RecNo датасета, который привязан к этому TableView?  
Просто TableView.DataController.GetFocusedRecordIndex (это показывает, в какой строке стоит фокус) или TableView.DataController.DataSource.DataSet.RecNo не проходит. Стало быть что делать?

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 14:14 05-10-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003
Для раскраски грида данные нужно брать с самого грида, а не с датасета. Потому что при раскраске, курсор не позиционируется в нужную позицию.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:29 05-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
volser
ок, и как это сделать? Есть у него какой-нибудь виртуальный датасет или что-то подобное?
 
 
Добавлено:
volser
Это делается вот так?  

Код:
 
Sender.DataController.Values[AViewInfo.GridRecord.Index, MyColumnIndex]
 


----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:32 05-10-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003

Цитата:
ок, и как это сделать? Есть у него какой-нибудь виртуальный датасет или что-то подобное?  

Используйте параметр AViewInfo: TcxGridTableDataCellViewInfo.
Он знает все о том какая конкретно ячейка/строка/столбец обрабатывается, ее состояние - фокусед/селектед, значение в это ячейке и т.д.
ms-help://borland.bds5/ExpressQuantumGrid6.BDS5/ExpressQuantumGrid6/IDH_Class_TcxGridTableDataCellViewInfo.htm

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 15:41 05-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Ну то есть как я написал в примере, как я понимаю.
 
P.S.: Все-таки жалко, что стандартные подходы, которые были по EhLib и Borland VCL, не проходят

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:44 05-10-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003

Цитата:
Ну то есть как я написал в примере, как я понимаю.  

Да, именно так как вы написали.

Цитата:
что стандартные подходы, которые были по EhLib и Borland VCL, не проходят

А как вы себе представляете эти стандартные подходы при перерисовке каждой ячейки, причем если эта перерисовка происходит очень часто (иногда даже когда указатель мыши отрисовывается над ячейкой). Что, каждый раз менять фокус в DataSet, например, чтобы знать значение какого-то поля? Так это было бы не просто долго, а вообще неработоспособно.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 15:51 05-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Ну в том же EhLib и Borland VCL это же работает. Да, благодаря девкам получаешь более высокий функционал, до которому EhLib как до Луны. Но все же, хочется иметь возможность совместимости или даже так - "совместимость по запросу".

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:56 05-10-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003
Все дело как раз в этом "высоком функционале".

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 16:24 05-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
ну не спорю, хотя "совместимость по запросу" еще никто не отменял.

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 16:46 05-10-2009
Glukodel



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Бесплатное расширение DevExpress (доработанные lookup'ы)
, для решения проблем, рассмотренных ранее на форуме
здесь, здесь,
и здесь .
Из 2-х компонентов 2-й заточен чисто под Oracle, но позволяет не загружать весь справочник для работы лукапа, что крайне позитивно влияет на скорость работы

Всего записей: 97 | Зарегистр. 16-08-2004 | Отправлено: 19:21 05-10-2009 | Исправлено: Glukodel, 19:22 05-10-2009
AlexPetrovich

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Glukodel
Спсб!
Для себя делал подобное прямо в коде, но компонентиком более красивое решение. Очень часто бывает нужно.

Всего записей: 91 | Зарегистр. 08-05-2003 | Отправлено: 10:31 06-10-2009
JohnSilver182



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
Если для одного столбца - используйте MaskEdit в качестве EditProperty с соответствующей маской  

Я сделал ... MaskEdit->EditMask=!99/99/00;1;_  и не помогла
 
 
Добавлено:

Цитата:
событие OnCustomDrawCell используя процедуру TcxCanvas.DrawText(const Text: string; R: TRect; Flags: Integer; Enabled: Boolean = True);

 
Там Trec .... МАМА МИА !!!!
AViewInfo.*****Bounds;

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 10:55 06-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Итак, появилась мини новая проблема, чего-то совсем запутался. Если не включать OptionData->Editing, то при копировании в буфер обмена почему-то копируется вся строчка, если включать Editing, то выбирается ячейка и копируется в буфер обмена только эта ячейка, но не срабатывает DblClick. Стало быть, что делать? Нужно копировать только одну ячейку по запросу и чтоб была возможность поймать DblClick.

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 14:26 06-10-2009
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу немного поофтопить.
Думаю, все со мной согласятся, что vladman в этой ветке делает большую работу. За это ему большое спасибо.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 15:38 06-10-2009
ant0ni02004

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003
 
за это по идее rowSelect отвечает

Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 15:41 06-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ant0ni02004
В обычном ДБГриде да, в ДБГриде от EhLib да, а где он находиться в ДБГриде от девок?

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:45 06-10-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JohnSilver182

Цитата:
Я сделал ... MaskEdit->EditMask=!99/99/00;1;_  и не помогла  

Попробуйте обработать событие OnGetDataText
procedure <YourForm>.<YourcxGridDBTableViewDateColumn>GetDataText(Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: string);
begin
  AText := FormatDateTime('dd/mm/yy', StrToDate(AText));
end;
 
Добавлено:
JohnSilver182
Маску нужно убрать
 
Добавлено:
Cryogen2003

Цитата:
Нужно копировать только одну ячейку по запросу и чтоб была возможность поймать DblClick.

Установите свойство <YourcxGridDBTableView>.OptionsBehavior.ImmediateEditor = True;
 
Добавлено:
afiget

Цитата:
Хочу немного поофтопить.

Вам спасибо на добром слове.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 18:14 06-10-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Поставил, все равно не фурычит. Сразу сваливается в редактирование поля и не ловиться DblClick при этом.
 
P.S.: Кстати присоединяюсь к afiget - большое спасибо, что Вы нам всегда помогаете.

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 18:54 06-10-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)
ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru