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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



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

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




 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, Первая часть, вторая часть, третья часть

Полезные утилиты:
DxAutoInstaller v2.1.10 Простой и удобный тул для установки девок из исходников
https://mega.nz/#!aJRQzSqI!N7RgfcG1tfF45Z3OgcmBDHT_ZcWlIgJQ5eHHgQ9VupE

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:48 31-12-2009 | Исправлено: G787, 21:12 29-07-2018
Chukotka

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

Цитата:
ну если не отработал OnInitPopup и OnPopup, то OnCloseUp не должен отработать.

И я так думал. Но у меня программа вылетает по AV. И в стеке вызовов, отображаемых madExcept, последним стоит OnCloseUp (WinPropCloseUp), но перед этим нет вызовов OnPopup. Вот мне и интересно - каким образом возможно срабатывание на закрытие окна без активизации события на открытие.
AV выскочил у клиента, у меня при тестировании все работает правильно, и все события срабатывают как надо.
WinPropCloseUp присваивается свойству OnCloseUp (как показано выше) и активируется только оттуда - прямых вызовов в коде нет.

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 17:55 06-07-2010 | Исправлено: Chukotka, 17:59 06-07-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[b]jonikDk[/b]
сори, глупый вопрос, не дочитал сообщение
[b]Chukotka[/b]
может у него ошибки в памяти? поставь проверку в WinPropCloseUp

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 18:24 06-07-2010
Chukotka

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

Цитата:
может у него ошибки в памяти? поставь проверку в WinPropCloseUp
Этим сейчас и занимаюсь - пишу тесты. Но просто интересно - почему нет вызова OnPopup? Это нормально с точки зрения логики работы девок?

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 19:54 06-07-2010
Abdulatipoff

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

Цитата:
Прошу помочь решить мою ситуацию! Неделю бьюсь над установкой DevExpress x50 под RAD STUDIO 2010, компоненты устанавливаются, но как-то криво... Кроме "UserSkin" в окне Project Skin Options Editor больше нет ничего, хотя все скины лежат на месте...
Устанавливаю автоинсталлируемый пакет с торрента (rutracker.org/forum/viewtopic.php?t=2742350). Все пути прописал, все встает без ошибок. Сначала у меня был установлен только CBuilder 2010, переустановил полную студию, теперь и стоят дельфи и билдер, компоненты ставятся, и проекты компилируются, и скин по умолчанию применяется (даже к основной форме), но список скинов никак не пополняется - только пресловутый "юзерскин".  

 
Сам разобрался с проблемой. Хочу поделиться решением с теми, кому еще может понадобиться. В просторах инета нашел совет, что скины надо скомпилировать перед использованием, и инсталлировать в IDE. Так оно и есть, но в процессе есть подводные камни, справиться с которыми достаточно просто.
 
В папке ..\ExpressSkins Library есть редактор скинов dxSkinEditor.exe
Запускаем, открываем из папки ..\ExpressSkins Library\Binary Skin Files нужный скин (.skinres), к примеру AllSkins.skinres, компилируем командой Build (меню Project).
Теперь в папке ..\ExpressSkins Library\Binary Skin Files лежат файлы, ПОЧТИ готовые к инсталлированию.
В папке находим проекты, отдельно для билдера (*C14) и дельфи (*D14). Так как я использую CBuilder 2010, то для дальнейшего действа мне нужен файл AllSkinsC14.cbproj. Когда я пытался загрузить и откомпилировать проект скина, то получил ошибку линковщика, что не найден файл DXCOREC14.BPI, и, заглянув внутрь файлов проекта, удивился глюку разработчиков.
Дело в том, что DevExpress x50 выпущен под RAD STUDIO 2010, т.е. и под дельфи и билдер. И вроде все верно, в папке Library находим единые компилированные пакеты типа *RS14.BPI для всех компонент. Отдельных файлов библиотек под билдер и дельфи не наблюдается. А вот SkinEditor сделал билд по старому образцу, в котором прописаны конкретные библиотеки под билдер или дельфи, не подозревая, что теперь это один файл. В этом то и проблема.
В итоге, я отредактировал полученные от СкинЕдитора файлы AllSkinsC14.hpp, .cpp, .cbproj, заменил в них все "C14.bpi" на "RS14.bpi", затем загрузил AllSkins.cbproj в билдере, в проджект менеджере щелкнул на проекте правой кнопкой и выбрал опцию Install. После сообщения, что типа все хорошо и файлик BPL для меня уже испекли, в меню Component я запустил Install Packages и добавил в систему пакет AllSkins.bpl из папки \Documents and Settings\All Users\Документы\RAD Studio\7.0\BPL.
 
Из всего этого стоит сделать вывод, что если вдруг не обнаруживаются какие-то файлы, то можно предположить, что причиной могут служить "призраки прошлого" - недописки разработчиков при адаптации предыдущих версий компонент для новой студии.

Всего записей: 19 | Зарегистр. 03-07-2010 | Отправлено: 21:41 06-07-2010 | Исправлено: Abdulatipoff, 00:09 07-07-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[b]Abdulatipoff[/b]
а еще можно не париться и грузит скины в RunTime

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 22:47 06-07-2010
Abdulatipoff

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
linker_2009
 
Как это можно сделать? Может, расскажешь подробнее?

Всего записей: 19 | Зарегистр. 03-07-2010 | Отправлено: 00:05 07-07-2010 | Исправлено: Abdulatipoff, 00:06 07-07-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[b]Abdulatipoff[/b]
в dxSkinsDefaultPainters есть функция dxSkinsUserSkinLoadFromStream и dxSkinsUserSkinLoadFromFile
в шапке есть пример "DLL со скинами из библиотеки dxSkins, автор Ziltoid"
З.Ы. в 50 скины таким макаром не грузятся, откатился на 49

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 01:28 07-07-2010
vladman

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

Цитата:
Возможно ли в шедулер и его диаграмме ганта сделать так, что бы можно было создать какое-то задание по какому-то клиенту для одного из сотрудников (делать это может только супервизор). Сам сотрудник мог бы отписать по этому заданию какой-то комментарий или комментарии (но при это не мог сделать ничего с самим заданием). Причем можно было раздавать задания нескольким сотрудникам по одному клиенту.  
Вообщем, можно ли это сделать стандартным способом в шедулере или как это можно обыграть по другому?  

Наконец-то нашел время разобраться с вашим вопросом. В общем, для решения вашей проблемы, если еще актуально ), вам необходимо создать свой SchedulerEventEditor. Как это делается очень хорошо описано в Этой статье.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 15:33 07-07-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Да, актуально. Ок, спасибо большое, почитаю.
 
По поводу вашей помощи с ПивотГридом - большое спасибо, очень помог ваш способ решения. С меня пЫво

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

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:45 07-07-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по принтосистеме. Dev 50 (без сорцов), да этого была версия 48 с сорцами.
При закрытии приложения вот такое AV

Цитата:
Project  raised exception class EReadError with message 'Error reading dxComponentPrinter1Link1.PrinterPage.FitToPagesByTall: 28'.

При чём в другом приложении тоже использую принтосистему. Но такой ошибки при закрытии нет.
Это случайно не связано с сохранением/восстановлением свойств компоненты?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:14 07-07-2010
vladman

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

Цитата:
Это случайно не связано с сохранением/восстановлением свойств компоненты?

Это же легко проверить. Временно отключите сохранение/восстановление свойств компоненты.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 16:23 07-07-2010
Chukotka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в обработчике OnCloseUp для PopupEditor'a в VerticalGrid узнать DBEditorRow, которой принадлежит данный контрол?

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 16:37 07-07-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, глюк при сохранении. В компоненту TPropStorageEh (EhLib) добавил для сохранения/восстановления свойство dxComponentPrinter1Link1.PrinterPage
При сохранении есть ошибка, при восстановлении (запуск приложения) ошибки нет. Скорее всего, что в девках ошибка, т.к. в одном случае компонента PropStorageEh видит свойство FitToPagesByTall, а в другом не видит, хотя хз.
Не знаю, пока как быть. Может написать автору EhLib?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:54 07-07-2010
vladman

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

Цитата:
Как в обработчике OnCloseUp для PopupEditor'a в VerticalGrid узнать DBEditorRow, которой принадлежит данный контрол?

TcxVerticalGrid(TcxCustomEdit(Sender).Parent).FocusedRow.
Еще для надежности можно проверять что TcxCustomEdit(Sender).Parent is TcxVerticalGrid

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 02:36 08-07-2010
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто использовал dxlayoutControl. В рантайм можно расположить слева направо до конца формы, а затем вниз dxLayoutItem ?
У меня получается только по вертикали либо форма увеличивается до бесконечности по горизонтали ...

Всего записей: 1604 | Зарегистр. 01-03-2004 | Отправлено: 08:21 08-07-2010
CAD_tester

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые!
- Использую TreeView для отображения дерева!
- Выбираю одну ветку, она выделяется и иконка в этот момент меняется на активную иконку!
- Далее иду внутрь дерева, внутри выделенная ветка активируется и становится активной эта иконка уже, а та которая главная ветка тут же деактивируется иконка!
 
 
Можно ли как то отслеживать и поддерживать активность всей ветки, в которой находишься?
 
Если не очень поятно, то извиняюсь, я готовил картинку чтоб задать вопрос, но забыл её дома
Если суть вопроса не будет понятна, завтра закину картинку того как у меня есть и как хотелось бы!
 
Спасибо заранее за ответ!

Всего записей: 474 | Зарегистр. 18-01-2005 | Отправлено: 14:39 08-07-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что значит "отслеживать активность всей ветки"?
Сохранять куда-то, что выбирал пользователь?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:49 08-07-2010
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CAD_tester
Все зависит от того, как вы меняете иконки. Давайте код.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 15:03 08-07-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
да эта фишка TreeView, он автоматом меняет иконку если активен элемент
Если я правильно понял, он хочет что бы у каждого элемента цепочки от выделенного до Root была иконка изменена на активную.
 

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 21:02 08-07-2010 | Исправлено: linker_2009, 21:17 08-07-2010
mmi

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

Цитата:
Уважаемые!  
- Использую TreeView для отображения дерева!  
- Выбираю одну ветку, она выделяется и иконка в этот момент меняется на активную иконку!  
- Далее иду внутрь дерева, внутри выделенная ветка активируется и становится активной эта иконка уже, а та которая главная ветка тут же деактивируется иконка!  

 
Не скажу про TreeView, но если речь идет о TdxTreeList, то у него есть обработчик события:
 

Код:
 
procedure TForm1.dxTreeList1ChangeNode(Sender: TObject; OldNode,
  Node: TdxTreeListNode);
procedure SetImageIndex(aNode: TdxTreeListNode; aIndex: integer);
begin
  while aNode <> nil  do
      begin
        aNode.ImageIndex := aIndex;
        aNode := aNode.Parent;
      end;
end;
begin
  dxTreeList1.BeginUpdate;
  try
  SetImageIndex(OldNode,0); // ImageIndex
  SetImageIndex(Node,5);  // SelectedIndex
  finally
    dxTreeList1.EndUpdate;
  end;
end;
 

Всего записей: 28 | Зарегистр. 28-01-2003 | Отправлено: 21:14 08-07-2010 | Исправлено: mmi, 21:16 08-07-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru