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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kr_Alex
 
1. В DEMO есть GridMenuViewsDemo, там для view tvOrders уже
   созданы в закладках Summary -> Default for Groups шесть
   SummaryItem.
2. Если ты сам ручками вставишь там обработчик
    tvOrders -> DataController -> Summary ->  
    DefaultGroupSummaryItem -> OnSummary и поставишь
    в него контрольную точку, то увидишь, что заход в  
    обработчик есть, и при этом все нормально работает.
3. Дальше останется понять, чем твой вариант отличается от
   работающего.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 09:54 24-06-2005 | Исправлено: Alex47, 11:01 24-06-2005
zlojvavan

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
отцы, есть траблы что с 4-й что с 5-й версией грида в 5-й стройке. проблемы судя по всему именно что билдеровы т.к. в 5-й дельфе с теми же версиями грида не наблюдаются. а именно, при включении OptionsView->Navigator все сурово рушится. конструктор формы например не отрабатывает вообще, так что даже в дизайнтайме форма не открывается. если же врубить св-во в рантайме то тоже на каждое движенье в дальнейшем получается AV. стройка известна своими разнообразными галюнами. any comments?
 
Добавлено:
вот фрагмент лога полученного при врубании в рантайме этого св-ва:
 
madExcept version : 2.7g
exception class   : EAccessViolation
exception message : Access violation at address 0012EB3E. Write of address 00000073.
 
main thread ($b10):
0012eb3e ???                                        
005c03e7 QDispatchMan.exe cxGridCustomView          TcxCustomGridViewInfo.MainCalculate
0057b25d QDispatchMan.exe cxGrid                    TcxGridLayoutChange.Execute
0057d2a5 QDispatchMan.exe cxGrid                    TcxCustomGrid.DoChange
0057d6b3 QDispatchMan.exe cxGrid                    TcxCustomGrid.Changed
005c28b9 QDispatchMan.exe cxGridCustomView          TcxCustomGridView.Changed
005c2aa0 QDispatchMan.exe cxGridCustomView          TcxCustomGridView.LayoutChanged
005c29a2 QDispatchMan.exe cxGridCustomView          TcxCustomGridView.BoundsChanged
005be08f QDispatchMan.exe cxGridCustomView          TcxGridSite.BoundsChanged
005fdcbb QDispatchMan.exe cxControls                TcxControl.UpdateScrollBars
005be777 QDispatchMan.exe cxGridCustomView          TcxGridSite.UpdateScrollBars
005bd12c QDispatchMan.exe cxGridCustomView          TcxCustomGridController.UpdateScrollBars
005c0051 QDispatchMan.exe cxGridCustomView          TcxCustomGridViewInfo.AfterCalculating
005b2259 QDispatchMan.exe cxGridCustomTableView     TcxCustomGridTableViewInfo.AfterCalculating
005e1c05 QDispatchMan.exe cxGridTableView           TcxGridTableViewInfo.AfterCalculating
005c0403 QDispatchMan.exe cxGridCustomView          TcxCustomGridViewInfo.MainCalculate
40004282 VCL50.BPL        System                    @HandleFinally
7c937b43 ntdll.dll                                  RtlUnwind
40003ab4 VCL50.BPL        System                    TObject.Free
0061839d QDispatchMan.exe cxClasses                 TcxObjectLinkController.RemoveLink
41004a67 BORLNDMM.DLL     Borlndmm                  SysGetMem
40002c34 VCL50.BPL        System                    @GetMem
7c90eaf5 ntdll.dll                                  KiUserExceptionDispatcher
005c03e7 QDispatchMan.exe cxGridCustomView          TcxCustomGridViewInfo.MainCalculate
005cd81e QDispatchMan.exe cxGridDetailsSite         TcxCustomGridDetailsSiteViewInfo.Calculate
0057be7a QDispatchMan.exe cxGrid                    TcxGridViewInfo.Calculate
0057b27b QDispatchMan.exe cxGrid                    TcxGridLayoutChange.Execute
0057d2a5 QDispatchMan.exe cxGrid                    TcxCustomGrid.DoChange
0057d6b3 QDispatchMan.exe cxGrid                    TcxCustomGrid.Changed
0057d764 QDispatchMan.exe cxGrid                    TcxCustomGrid.LayoutChanged
0057b416 QDispatchMan.exe cxGrid                    TcxGridSizeChange.Execute
0057d2a5 QDispatchMan.exe cxGrid                    TcxCustomGrid.DoChange
0057d4e3 QDispatchMan.exe cxGrid                    _16580
0057d521 QDispatchMan.exe cxGrid                    TcxCustomGrid.DoUpdate
0057d73e QDispatchMan.exe cxGrid                    TcxCustomGrid.EndUpdate
005c293d QDispatchMan.exe cxGridCustomView          TcxCustomGridView.EndUpdate
005c2a21 QDispatchMan.exe cxGridCustomView          TcxCustomGridView.Changed
005c0761 QDispatchMan.exe cxGridCustomView          TcxCustomGridOptions.Changed
005b6018 QDispatchMan.exe cxGridCustomTableView     TcxCustomGridTableOptionsView.SetNavigator
00407138 QDispatchMan.exe mainformunit.cpp      488 TfrmMain.Button8Click
 
 
Добавлено:
проблема самоустранилась после ребилда cxGridC5.bpk в фуллдебаг-режиме
ну да не первая и не последняя...

Всего записей: 327 | Зарегистр. 04-08-2003 | Отправлено: 09:59 24-06-2005
dnau

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть QuantumGrid 5 от июля 2004, Delphi 7.
Показываю в Gride через DBTableView набор данных, он не сгруппирован, не отсортирован, не отфильтрован, т.е. показан как есть. Фокус установлен на середине сетки. При двойном щелчке на строке у меня открывается форма где эти данные редактируются. При закрытии формы делаю так:
DataSet.Close;
DataSet.Open;
DataSet.Locate(uin, 'uin', []);
Т.е. делаю Refresh.  
И происходит следующее: Locate отрабатывает отлично, он все находит, но найденная строка перемещается вниз, а курсор встает опять на середину сетки.  
Если все данные умещаются на экране, то все работает как надо, а если данных много - больше 2 страниц, то происходит такая бяка.
 
Помогите, может я какую опцию не включил (выключил)?
 

Всего записей: 12 | Зарегистр. 03-09-2003 | Отправлено: 14:01 24-06-2005
Kr_Alex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
В этом то вся и загвоздка Не могу понять в чем отличие
Ладно, буду копать дальше

Всего записей: 120 | Зарегистр. 16-07-2004 | Отправлено: 15:06 24-06-2005
zlojvavan

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

Цитата:
ну да не первая и не последняя

как знал, как знал
AV-то теперь не бросает, навигатор отображается, но не нажимается - неактивен абсолютно

Всего записей: 327 | Зарегистр. 04-08-2003 | Отправлено: 15:19 24-06-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dnau
А нет ли возможности (я не знаю, какой конкретно DATASET используется)
попробовать для refresh, вместо close, что-то из  набора:
 cxGrid1DBTableView1.DataController.RefreshExternalData
 cxGrid1DBTableView1.DataController.UpdateItems(False)
 cxGrid1DBTableView1.DataController.UpdateData

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 15:20 24-06-2005
dnau

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
Используется ADO, сервер - MS SQL Server.
 
В принципе, если бы был простая выборка типа:
select pole1, pole2, pole3 from table
то и обыкновенный ADOQuery.Refresh и  
cxGrid1DBTableView1.DataController.RefreshExternalData
изумительно подошли бы, но в выборке есть результаты UDF, т.е.
select pole1, dbo.MY_FUNCTION(poleX) as pole2, pole3 from table
и эти Refresh'и обновляют только pole1 и pole3, а pole2 остается неизменным
поэтому и я делаю Query.Close, Query.Open.  
Просто непонятно- почему Query.Locate нашел нужную запись, а Grid заставляет Query перейти на другую запись в центре сетки

Всего записей: 12 | Зарегистр. 03-09-2003 | Отправлено: 16:23 24-06-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dnau
1. KeyFieldNames для View нормально выставлены? Таблица реально по этим полям отсортирована? Далее можно попробовать поменять значение  SmartRefresh для DataModeController - True / False.
2. Можно попробовать после locate самому явно задать FocusedRecordIndex.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 20:41 24-06-2005
dnau

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
KeyFieldNames что выставлены, что нет разницы нет. SmartRefresh я пробовал - никаких результатов.
FocusedRecordIndex также задавал, но никаких результатов - курсор все равно перескакивает на центр сетки.

Всего записей: 12 | Зарегистр. 03-09-2003 | Отправлено: 11:17 25-06-2005
Alex47



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

Цитата:
FocusedRecordIndex также задавал

1. Как задавал, дай код.
2. Похоже, дело в том, что DataController.FocusedRowIndex остается старым.
    Надо попробовать обновить его.
3. Но непонятно, почему у тебя меняется положение записи: изменились параметры сортировок в колонках, изменился ключ записи. По каким критериям упорядочены
записи до редактирования и после него? Понятно, что если нет сортировок, то записи во View должны и до и после редактирования быть упорядочены по ключу.
4. Какой режим для GridMode?

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 11:26 25-06-2005 | Исправлено: Alex47, 12:12 25-06-2005
dnau

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
1. Задавал так:  
 
   FocusedRow := Grid.DataController.FocusedRowIndex;
   if EditForm.ShowModal = mrOk then begin
      // бла-бла - пишу в базу
 
      Query.Close; // делаю Refresh
      Query.Open;
      Query.Locate('uin', uin, []); // это true - я проверял
 
      Grid.DataController.FocusedRowIndex := FocusedRow; // это делается как надо, но все равно при закрытии EditForm он меняется.
   end;
 
3. В KeyFieldNames задано поле UIN, оно неизменно, записи в выборке упорядочены по трем полям, которые также неизменны. Т.е. после редактирования ключи сортировки не меняются!
4. GridMode := false;
Я правда и true его делал, разницы нет.
 
Помог совет из Knowledge Base Article на сайте DevExpress "How to Restore the Focused Position after a Record is Deleted"
 
var
  FocusedRow, TopRow: Integer;
  View: TcxGridTableView;
  DataController: TcxGridDataController;
begin
  View := cxGrid1.FocusedView as TcxGridTableView;
  DataController := View.DataController;
 
  // Remember the top row (the vertical scrollbar position)
  TopRow := View.Controller.TopRowIndex;
  // Remember the focused row(!) index
  FocusedRow := DataController.FocusedRowIndex;
 
  DataController.DeleteFocused;
 
  // After deletion the same row must be focused,
  // although it will correspond to a different data record
  DataController.FocusedRowIndex := FocusedRow;
  // Restore the top row
  View.Controller.TopRowIndex := TopRow;
 
Т.е. запоминаем и устанавливаем TopRowIndex !!!

Всего записей: 12 | Зарегистр. 03-09-2003 | Отправлено: 14:05 25-06-2005
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dnau
1. Я тоже пользуюсь этим кодом из Knowledge Base для случая удаления записей.
Запоминается как TopRowIndex, так и  FocusedRowIndex.  
2. C этим кодом, кажется, должно и без Query.Locate('uin', uin, []) работать, по крайней мере для GridMode := false ?

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 00:24 26-06-2005
dnau

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
Да, этот код работает и без Locate.
 
Спасибо за помощь!

Всего записей: 12 | Зарегистр. 03-09-2003 | Отправлено: 10:42 26-06-2005
Bill_PHO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вот как, если была добавлена новая запись, спозиционироваться на нее в гриде.
Locate ее находит, а грид на нее не становится.

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 15:31 04-07-2005
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bill_PHO
SyncMode установлен? Грид в каком режиме?

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 18:14 04-07-2005
Sergey1970



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Интересуют примеры использования FlowChart. А именно использование методов UserRegion, PaintText, PaintImage, DefaultDrawObject и т.д.
 
Необходимо реализовать объекты с текстовкой и зонами (например классические PowerDesigne отображения таблиц в физической и логической модели БД).
 
Натолкните, плз, куда (и как рыть) рыть.
 


Всего записей: 55 | Зарегистр. 11-02-2003 | Отправлено: 18:57 05-07-2005
DimaDiZ

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Стоят последние компоненты. Почему-то при включенном cellhints в гриде падает с AV при щелчке мышью на поле у которого этот hint выведен. Ни у кого не попадался такой глюк?

Всего записей: 13 | Зарегистр. 18-12-2003 | Отправлено: 22:47 05-07-2005
mln141



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Стоят 5 девки для BCB6. Почему-то в DataModul перестал нормально работать cxPropertiesStore. А именно: если сохранять в INI то никакого эффекта. При сохранении в reg все работает. Когда стояли 4 девки то все было OK. В главной форме тоже все работает. Никто с таким не сталкивался?

Всего записей: 86 | Зарегистр. 18-05-2005 | Отправлено: 09:27 06-07-2005
haword



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Незнаю, может кто в курсе, как сделатьу  DexExpress  прозрачный cxcheckbox при класической теме Windows? а то некрасиво смотрится серый прямоугольник на градиентном поле!

Всего записей: 312 | Зарегистр. 12-09-2004 | Отправлено: 10:46 06-07-2005 | Исправлено: haword, 10:54 06-07-2005
mln141



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
haword
А что ты хочешь? Если что-бы текст и вокруг него, то вроде достаточно установить NativeStyle (в Style->LookandFeel). Или ты хочешь, сам квадратик для галочки сделать как у подложки?

Всего записей: 86 | Зарегистр. 18-05-2005 | Отправлено: 17:14 06-07-2005
   

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