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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При чем тут DevExpress?
Вам, скорее всего, в раздел по SQL.
Составьте запрос, если получится, с использованием UNION ALL, где будет:
ID
PARENT
NAME
 
а уж потом думайте про DevExpress.
 
Добавлено:
Народ DevExpress`у приписывает по истине магические свойства

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:03 20-03-2013
reenoip



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

Цитата:
Я именно почти и сделал. Только использовал CheckGroups.
Вот, попытался описать  
http://www.sql.ru/blogs/x11/1482

 
X11
если не затруднит - поделитесь рабочим примером, пожалуйста. А то по Вашей ссылке у меня тоже только "почти" и получается, к сожалению

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 14:17 26-03-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отдельно рабочего примера нет. И нет сейчас времени на его реализацию. Нужно создать базу или memory table, перенести код в новое приложение. Может сделать чуть позже.
 
 

Цитата:
"почти" и получается

Вы там или здесь напишите, что и как делаете, что не получается, картинки, код покажите.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:54 26-03-2013
sobolenok

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день! В cxImage при использовании стандартного popup меню есть возможность получить имя загружаемого файла?
в гугле нашел только такой ответ:
 
Ответ
 
переназначать свой popup непозволительно.

Всего записей: 30 | Зарегистр. 03-03-2007 | Отправлено: 08:31 27-03-2013 | Исправлено: sobolenok, 08:36 27-03-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не могу понять, что сломалось в XE3.
Не видит девовские DCU.
Недавно тоже кто-то описывал подобную проблему.
Так вот. Оказалось, что я экспериментировал и в конфиг проекта, в Target platform добавил x64.
И активировал. Но пути в настройках IDE не прописаны, поэтому среда не видела dcu.
Пути для x64 и для x32 разные

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:26 27-03-2013 | Исправлено: X11, 12:27 27-03-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне DevExpress понравились.
Датасет у меня не дружил только с девикс. Что я только не делал - локейты по таймеру, забирал датасет у датасурса и тд. Оказалось ему нужен DataSet.BookmarkValid. Добавил всего 4 строчки и вообще все глюки исчезли. Гридина как гридина - всё адекватно хоть опции меняй. )

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 11:44 28-03-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В демках (\ExpressQuantumTreeList\Demos\Delphi\CheckGroupsDemo\CheckGroupsDemo.dpr) есть пример с компонентом cxTreeList. Как его можно настроить таким образом, чтобы при клике по любой области одной строки CheckBox текущей строки менял свой статус (checked/unchecked)? Сейчас он меняет статус лишь при клике по нему самому (область примерно 16х16), а у меня очень широкое дерево, и желательно сделать реакцию на клик курсором в любой области строки. Любопытно, что при выделении строки и нажатии пробела на клавиатуре статус CheckBox'а меняется, а вот по клику - нет

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 18:56 28-03-2013
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
reenoip
посмотрите есть ли такое свойство CheckOnClick - должно true быть в нем. правда это работает только если кликаешь по колонке с checkbox.
ну а другой способ - на событие Click ставить check у focused строки ...

----------
Регистрация ника))
ОСАГО и КАСКО
Работа

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:37 29-03-2013
reenoip



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

Цитата:
посмотрите есть ли такое свойство CheckOnClick - должно true быть в нем. правда это работает только если кликаешь по колонке с checkbox.  

именно это сейчас и происходит.
 
 
 

Цитата:
другой способ - на событие Click ставить check у focused строки

вот именно это мне и нужно знать.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 08:00 29-03-2013
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
reenoip
для C# на событие Click

Код:
 
   TreeListNode node = ((TreeList)sender).FocusedNode;
   node.SetValue(ИмяКолонкиCheckBox,  
         !(bool)node.GetValue(ИмяКолонкиCheckBox));
 

правда такое решение не совсем удобное - скорее всего оно будет срабатывать и на клики по заголовкам столбцов и т.д.

----------
Регистрация ника))
ОСАГО и КАСКО
Работа

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 08:38 29-03-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, конечно, но что мне с этим делать теперь - ума не приложу )))
 
 
Мне это напомнило историю, когда я, выложив отрывок текста на японском языке на форуме переводчиков, попросил перевести его на русский (там фрагмент-то был всего-ничего, на десяток-полтора строчек). А мне взяли и перевели мой текст на испанский. Мне вроде бы и помогли как смогли, но от этого перевода мне, почему-то, легче не стало
 
 
 
 
 
 
 
 
p.s.
Ничего личного, просто настроение подняли
 
Добавлено:
В смысле, мне бы на Delphi Ваш совет как-то интерпретировать надо. Я и с одним-то языком совладать не могу, а уж с двумя и подавно не справлюсь.

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 15:08 29-03-2013 | Исправлено: reenoip, 15:08 29-03-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не могу понять, почему часто вываливается ошибка. Иногда всё ок.
 
Есть код получения значения ключевого поля дерева TcxDBTreeList.

Код:
Var
 vNode:  TcxDBTreeListNode;
begin
...
...
 
  vNode := TcxDBTreeListNode(tree.Root);//получаем корневой узел
  if not Assigned(vNode) then Exit;//не удалось получить корневой узел - выходим их процедуры
...
...
    while Assigned(vNode) do//цикл по всем узлам дерева
    begin
      if not VarIsNull(vNode.KeyValue) then
        s := VarToStr(vNode.KeyValue); // ЗДЕСЬ ОШИБКА
 
...
...

 
Решил проверить, что за тип возвращает KeyValue
ShowMessage(VarTypeAsText(VarType(vNode.KeyValue)));
 
Возвращает "Array $0B10"
WTF?
При чем если вызывать процедуру много раз, то бывает такое, что ошибка не проявляется.
 
 
 
Добавлено:
Забыл указать текст ошибки:
Project raised exception class EVariantBadVarTypeError with message 'Invalid variant type'.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 21:10 30-03-2013
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
reenoip
Понимаю тебя ... но делфи забросил очень давно и перешел на студию от мелкософта (в основном c#).
Мене самому очень тяжело что-то советовать людям кто пользуется делфи - Дэвки под студию очень сильно отличаются от Дэвок под делфи.
Например, большинство проблем которые решают здесь парни - уже реализованы с помощью одной замечательной библиотеки - XPO. Более скажу - из-за этой библиотеки я уже стал забывать SQL  (селекты, инсерты и тому подобное)... я практически не залазию в базу - например, создание таблицы - я делаю через XPO, поменять тип данных - через ХРО, элементарные команды добавление, удаление и изменение строки - через ХРО. Вообщем, очень много вкусностей ...
Это позволяет больше думать об архитектуре и логике программы.
Поэтому извиняй за мой предыдущий ответ.

----------
Регистрация ника))
ОСАГО и КАСКО
Работа

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 08:12 01-04-2013
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal
да перестань, извинений не нужно, никаких проблем нет, я вообще сам виноват: не указал в своём вопросе платформу. В любом случае - спасибо большое за помощь!

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 09:10 01-04-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я не понял, а что DevExpress сделали свой грид бесплатным для одиночных разработчиков?!  
devexpress.com/ClientCenter/Default.aspx

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:29 01-04-2013
makz

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

Цитата:
Project raised exception class EVariantBadVarTypeError with message 'Invalid variant type'.

А variant ли там на самом деле в KeyValue? Если да, вообще VarToStr ни к чему. Может ему лучше сказать, что он string?
 
Никто так и не заценил первоапрельский юмор. :-\

Всего записей: 1034 | Зарегистр. 17-05-2003 | Отправлено: 03:25 02-04-2013 | Исправлено: makz, 03:35 02-04-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Редактирование и добавление записей в cxDBTreeList  
 
Для добавления записи в cxDBTreeList нажимаю Insert или Ctrl+Insert, что-то ввожу и потом нажимаю клавишу вверх или вниз. Курсор перебрасывает фиг знает куда, вообще в другую ветку дерева.
Дерево TcxDBTreeList привязано к TpFibDataset. Все свойства дерева типа KeyField, ParentField прописаны правильно.
В запросе FibDataset`а кляуза order by отсутствует, свойства AutoUpdateOptions заполнены.
Можно ли cxDBTreeList заставить не перемещать курсор после добавления записи?  
 
Далее.
Чтобы завершить редактирование и сохранить данные в базу, я хочу использовать событие OnKeyDown. Я так понимаю, что лучше всего именно его использовать.
 
Код такой:

Код:
  if Assigned(TcxDBTreeList(Sender).FocusedNode) and (Key = VK_RETURN) then
    if TcxDBTreeList(Sender).FocusedNode.IsEditing then
        TcxDBTreeList(Sender).DataController.Post;

 
Или есть более "правильный код"?
 
Почему-то 2 раза требуется нажать Enter. Хотя все условия выполняются.
 
Добавлено:

Цитата:
А variant ли там на самом деле в KeyValue?  

 
В общем, я так понял, что нужно использовать getFirstChild

Код:
vNode := TcxDBTreeListNode(tree.Root.getFirstChild);

И далее уже цикл
 
Добавлено:
здесь http://www.devexpress.com/Support/Center/p/S31922.aspx написано, что нужно вызвать 2 метода:
EndEdit и Post или я не так их понял?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:49 04-04-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Незнаю как настроить виндовую кнопку в гридине, которая вызывает локальное меню - попапину. В Delphi7 вообще не работает, а в 2010 открывает меню в левом верхнем углу, надо чтобы открывало под текущей записью по середине гридины.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 09:15 05-04-2013
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблемму решил - достаточно легко реализуется. Клавиша локального меню - это VK_APP. FocusedBounds найти сложно но я нашол. Сделал +100 +15 и у меня почти как в Экселе и виндовсе.
 
ps
Сори как я вытаскиваю FocusedBounds выложу завтра. Есть процедура которая грузит сеттинги Грида, думаю туда повесить.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:47 10-04-2013 | Исправлено: delover, 19:37 10-04-2013
delover

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

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 07:38 11-04-2013
Открыть новую тему     Написать ответ в эту тему

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