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

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

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

ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

golkanavt



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

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




 
Сами прирученные компоненты частенько приходят на водопой сюда

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:42 08-10-2003 | Исправлено: golkanavt, 15:41 08-09-2006
bigsov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtemiyUO,pitpjp,RedPromo
СПАСИБО ОГРОМНОЕ ВАМ!!!  Получилось!!!!!  Воспользовался всеми рекомендациями!  
Дело оказалось в том, что я когда вычищал старые версии, я искал только файлы cx*.*(а надо было искать еще dx*.*!)
а в папке windows\system32 вкралась dxTheme7! И конечно же она и выдавала глюк!  
Спасибо всем огромное!  
При этом я еще на всякий случай скопировал все файлы в одну папку - и ЗАРАБОТАЛО! УРА!
 

Всего записей: 2 | Зарегистр. 19-09-2006 | Отправлено: 02:49 20-09-2006
clear2121



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

Цитата:
Может у тебя какой компонет лежит, который запоминает положение формы? Вот она и не максимизируется...

Нет, это именно из-за TcxTreeList. На форме он один. Повторюсь

Цитата:
если я в TreenFocusedNodeChanged помещаю код для получения данных из DATA, то форма появляется такая, как в дезайнере.

jicoff
Этот подход я использую давно, еще со времен TreeView. Если юзать DB компоненты, то база со 150 000 записей с MS SQL сервера просасывается ООООООООчень долго. Выход - юзать простые компоненты. Но таблицы связаны по ключу. Можно установить релейшены в таблицах. Но все это очень медленно. Поэтому я делаю так:
1. Получаю главные ветки. Здесь же добавляю DATA (обычно структура с кодами)
2. При движении по дереву из DATA получаю код и делаю запрос на сервер, где из нужных таблиц получаю данные.
3. При открытии поддерева просасываю только нужные данные.
 
Работает очень быстро. На пне 166 с 32 Мб памяти запрос на 1 000 записей проходит за 2-3 сек.  
 
Я думал о скрытых полях. В некоторых проектах есть такой подход. Но это как то не красиво. ИМХО.  
Вообще, здесь есть люди, кто купил официально Девок? Могут они задать вопрос производителям? Или можно самому?
Спасибо за советы!
 
Добавлено:
jicoffuranic2
Разобрался. Проблема в следующем. У меня в FocusedNodeChanged записано
cxLabel1->Caption = (String)((CodeWork*)AFocusedNode->Data)->ID;
Т.е вывожу код на визуальный компонент для проверки. Стоило написать
tmp = ((CodeWork*)Treen->FocusedNode->Data)->ID;
Все нормально. Значит нельзя выводить на компонент. Только в переменную.
 

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 04:55 20-09-2006
uranic2

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

Цитата:
Если юзать DB компоненты, то база со 150 000 записей с MS SQL сервера просасывается ООООООООчень долго

Понятное дело прокачать 150 000 записей по сети, потом под них выделить память (навряняка программа уйдет в своп) - не быстрое дело
clear2121

Цитата:
Можно установить релейшены в таблицах

Хм. Не понятно как это может увеличить скорость всасывания 150 000 записей.
Дальше рассуждаешь правильно
 

Цитата:
Я думал о скрытых полях. В некоторых проектах есть такой подход. Но это как то не красиво. ИМХО

Ну может быть не очень красиво, но зато быстро. Немного выше jicoff посоветовал, на мой взгляд, самый правильный способ - наследник от TcxTreeListNode. Советовать devexpress по каждому поводу не станут, твой вопрос из серии какой оператор стоит использовать  WHILE или UNTIL REPEAT

Всего записей: 297 | Зарегистр. 17-08-2004 | Отправлено: 09:49 20-09-2006
Alex47



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

Цитата:
Вопрос, каким образом на эту форму можно разместить кнопу "Open Item"

 
Для того, чтобы появился 'Open Item' в диалоге Reminder нужно иметь обработчик:
 
procedure TfScheduler.SchedulerDBStorageRemindersOpenEvent(
  Sender: TcxSchedulerReminders; AEvent: TcxSchedulerControlEvent);
begin
  Scheduler.EditEventUsingDialog(AEvent);
end;
 
Это описано где-то в Help: 'Open event' button is visible when the event is  
assigned.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 11:20 20-09-2006 | Исправлено: Alex47, 11:25 20-09-2006
Sexton

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
Цитата:
Если юзать DB компоненты, то база со 150 000 записей с MS SQL сервера просасывается ООООООООчень долго. Выход - юзать простые компоненты.

Выход - не засасывать 150К записей (интересно, а сами программеры пробуют работать с 150К записей одновременно в своих программах?) и использовать в DB-компонентах GridMode.

Всего записей: 142 | Зарегистр. 31-05-2004 | Отправлено: 13:06 20-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть ли у TdxMemData что-то вроде Borow Strucute, как у MemData из пакета Jeddi(JVCL) или из пакета EhLib (MemTeble)???

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:32 20-09-2006
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
 
А сам то компонент DB или нет? Есть 2 подхода.  
 
1. Использовать DB компонент и DataSet и при раскрытии узлов записи добавлять туда.
 
2. Не использовать DB компонент и каким-то образом самому заботиться о хранении записей.
 
Какой предпочтительней?

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 16:16 20-09-2006
zvAndrey



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
в дизайнере кажется нет, в рантайме метод - CreateFieldsFromDataSet

Всего записей: 132 | Зарегистр. 02-02-2002 | Отправлено: 18:46 20-09-2006
jicoff

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

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 19:09 20-09-2006
X11



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

Цитата:
X11  в дизайнере кажется нет, в рантайме метод - CreateFieldsFromDataSet

ОЧЕНЬ ПЛОХО

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:53 21-09-2006
sunduk4

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как сетку сделать в DbCardView?

Всего записей: 177 | Зарегистр. 03-04-2004 | Отправлено: 11:39 21-09-2006
russko



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
Большое спасибо, помогло )

Всего записей: 176 | Зарегистр. 20-07-2005 | Отправлено: 11:49 21-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, подскажите, как определить выделенный (сфокусированный) столбец?
в какую сторону рыть?

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 13:47 21-09-2006
xitsmex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Итак, есть вопросы по стандартным багам VCL и их решениям. Покопался в инете - не отыскал. Хочется совета: в какой версии devEx пофиксено и пофиксено ли? Вопросы привел к классам VCL, это, конечно, баги VCL, но не саму ж VCL править, а наследников. А это - DevEx.
1. Описание: TScrollBox, контрол внутри него. Некорректное скроллирование при переходе фокуса на внутренний контрол TScrollBox`a.  
Детали: Если в TScrollBox есть большой контрол(наследник от cxControl в моем случае, но не принципиально), прокручиваем его куда хотим (фокус на него не ставим, только полосками прокрутки!). Затем ставим фокус на внутренний контрол (кликаем по нему) - ScrollBox прокрутится к самому началу.  
Пример: На фому TScrollBox, в него - TStringGrid БЕЗ собственных полос прокрутки, но по размеру больше, чем TScrollBox. Еще на форму TEdit - для масовки.  Кликаем в Edit, прокручиваем полосы в ScrollBox в правый нижний угол, кликаем на угловой ячейке - вуаля, ScrollBox прокручивается на (0,0) и выделяет на часть таблицы.  
2. Описание: TListView (TcxListView) продолжает процесс выделения, если был exception (messagebox) после события WM_LBUTTON_DOWN.  
Детали: Если при нажатии левой кнопкой мыши из-за потери фокуса другим контролом нпоявится message box (например, вследствие exception), то после закрытия messagebox будет наблюдаться выделение в ListView.  
Пример: На форму TListView с MultiSelect = true и Edit (снова масовка), у Edit:  
procedure TfmDemo.cxTextEdit1PropertiesEditValueChanged(Sender: TObject);
begin
  if TcxTextEdit(Sender).EditValue = 'A' then
    raise Exception.Create('A');
end;
Вводим в Edit 'A', нажимаем на ListView - exception. Жмем Ok - вуаля, в ListView бегают полосы выделения.

Всего записей: 58 | Зарегистр. 31-08-2005 | Отправлено: 21:21 21-09-2006 | Исправлено: xitsmex, 21:22 21-09-2006
clear2121



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

Цитата:
и использовать в DB-компонентах GridMode.

Что то не получилось. Для построения дерева ему надо всю базу, чтоб знать где есть дочерние, где нет. Пробовал и так и без. Все равно долго.
jicoff

Цитата:
А сам то компонент DB или нет? Есть 2 подхода.     1. Использовать DB компонент и DataSet и при раскрытии узлов записи добавлять туда.    2. Не использовать DB компонент и каким-то образом самому заботиться о хранении записей.    Какой предпочтительней?

Сам компонент - не DB. Я использую второй. Очень быстро получается.
 
 

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 06:21 22-09-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
Если не путаю, что-то примерно так:
 
View.Controller.FocusedColumnIndex
 
View.Controller.FocusedColumn
 
View.Controller.FocusedItem  
 
TcxGridItemDBDataBinding(TableView.Controller.FocusedColumn.DataBinding).FieldName

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 10:23 22-09-2006 | Исправлено: Alex47, 10:34 22-09-2006
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите.
В TcxTreeList вставляю пустую строку (qTels->FieldByName("PR")->AsInteger) и хочу всю ее красным сделать. Как?
 
Не могу получить значение в ячейке. У меня
void __fastcall TForm1::Col5GetDisplayText(TcxTreeListColumn *Sender,
      TcxTreeListNode *ANode, AnsiString &Value)
{
     if ( Value == "0" )
    {
        Value = "да";
    }
    else
    {
        Value = "нет";
    }
}
Это всегда возвращает НЕТ. Как получить?
 
Спасибо!
 
Добавлено:
Вставляема строчка TcxTreeListNode *NullData = Node->AddChild();
 
Добавлено:
И еще. А можно ли в этом компоненте в ячейку еще набор данных воткнуть? Вроде как таблица в ячейке

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 12:01 22-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А позволяет ли сетка DevExpress множественное выделение строк через одну, например.
Т.е. выделить нужно первую, с третей по пятую и восьмую, ну как в EhLib??
заранее спасибо

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:51 22-09-2006
dimonadv

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто уже сталкивался ?
Надо чтобы филда из датасета не отображалась в диалоге фильтрации, в общем списке доступных полей для фильтра.
 
Пробовал так. Она не отображается в сетке и это нормально, а в диалоге фильтрации есть.
 
  grd1DBTableView1.DataController.CreateAllItems;
  CurColumn := grd1DBTableView1.GetColumnByFieldName('RecId');
  if Assigned(CurColumn) then
  begin
    CurColumn.Visible := False;
    CurColumn.Hidden := True;
  end;
 
Как убрать ?

Всего записей: 80 | Зарегистр. 20-12-2004 | Отправлено: 14:04 22-09-2006
JackOff



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
Можно.  Вот кусок из хелпа для грида
 
 

Цитата:
Use the MultiSelect property to determine whether multiple rows can be selected within a view.  This is implemented by navigating a view with the Ctrl or Shift keys pressed.  This applies to keyboard and mouse navigation.  The Shift key is used to select a range of rows, and the Ctrl key is used to select non-sequential rows.
 
Refer to the Selecting Records section for more information.


Всего записей: 73 | Зарегистр. 13-11-2005 | Отправлено: 14:29 22-09-2006 | Исправлено: JackOff, 14:30 22-09-2006
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress
ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru