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

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

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

Цитата:
Locate - не помогает (и это понятно)

Это непонятно. OptionsData.SyncMode := ?

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 08:47 17-06-2010 | Исправлено: marser, 08:55 17-06-2010
korstin

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

Цитата:
Это непонятно. OptionsData.SyncMode := ?

TdxDBTreeView

Всего записей: 65 | Зарегистр. 27-10-2007 | Отправлено: 09:26 17-06-2010 | Исправлено: korstin, 09:27 17-06-2010
crazypiggy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У кого нибудь есть пример работы с dxSpellChecker? Если можно дайте ссылку.

Всего записей: 57 | Зарегистр. 02-10-2008 | Отправлено: 11:06 17-06-2010 | Исправлено: crazypiggy, 22:55 17-06-2010
Petrenuk

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

Цитата:
Вместо TableView.BeginUpdate, TableView.EndUpdate попробуйте  
TableView.DataController.BeginUpdate, TableView.DataController.EndUpdate

 
я пробовал это, пробовал также  
 

Код:
 
  TableView.DataController.BeginUpdateFields();
  if (ACol >= FirstVisCol) and (ACol <= LastVisCol) and
     (ARow >= FirstVisRow) and (ARow <= LastVisRow)
  then
    TableView.ViewData.Rows[ARow].Values[ACol] := TranSupplier.GetCellText1(ACol,ARow);
 
  TableView.DataController.EndUpdateFields();
 

 
и еще я пробовал вообще не лочить таблицу во время обновления, но заголовки все равно моргают... я не знаю в чем дело =(
 
http://slil.ru/29347440 - по этой ссылке видео, на нем примерно видно, как "дрожат" заголовки, хотя на самом деле они то делают с еще большей частотой...  
Я короче не знаю что мне делать, эти таблицы решили применить именно в расчете на производительность высокую, а они так глючат. Подскажите еще какое-нибудь решение...)
 
 
 
Добавлено:
Возникла вот какая мысль: что если заголовки все время обновляются из-за того, что меняется содержимое ячеек... В смысле: включена функциональность по нажатию стрелочки в заголовки (выезжает всплывающее меню с возможностью сортировки)
 
Возможно, если отключить эту функциональность, заголовки перестанут обновляться...
 
Добавлено:
Нет, это тоже не помогло...
 
Добавлено:
И еще, если кто-нибудь знает, как мне вставить картинку типа TBitmap  в ячейку грида?

Всего записей: 4 | Зарегистр. 16-06-2010 | Отправлено: 11:19 17-06-2010
onyxhall



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста. Можно ли в PivotGrid сделать так, чтобы фильтры (т.е. их кнопки) в Filter Header Area выводились в несколько строк, а не в одну длинную?

Всего записей: 51 | Зарегистр. 06-11-2006 | Отправлено: 20:18 18-06-2010
indapublic



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

Цитата:
TdxDBTreeView
, отвечу сам себе: раскрывать приходится по всему дереву, начиная с рутового узла.

Всего записей: 200 | Зарегистр. 05-02-2008 | Отправлено: 13:06 19-06-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Petrenuk
а надо ли так часто обновлять? сколько раз в секунду ты обновляешь грид?
 

Цитата:
И еще, если кто-нибудь знает, как мне вставить картинку типа TBitmap  в ячейку грида?

у колонки свойство Properties ставишт в Image. как имено загрузить
было уже в этом топике, например Ticon http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=440#18
и чyть далее было с jpg

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 14:52 19-06-2010 | Исправлено: linker_2009, 14:53 19-06-2010
bilov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите пожайлусто есть ли в DevExpress (компонент cxGrid) возможность запоминать измененные в в runtime расположение и ширину столбцов. Я где-то слышал что в DevExpress так можно. Как можно это сделать, и если это не так просто то можно примерчик или ссылочку где можно об этом почитать. Заранее благодарен

Всего записей: 11 | Зарегистр. 03-04-2009 | Отправлено: 23:23 20-06-2010
vladman

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

Цитата:
Скажите пожайлусто есть ли в DevExpress (компонент cxGrid) возможность запоминать измененные в в runtime расположение и ширину столбцов

Есть такая возможность, да и компонент есть. Удобней пользоваться возможностью. )
О возможности можно поискать в справке по словам TcxCustomGridView.StoreToRegistry, ...StoreToIniFile, ...StoreToStorage, ...StoreToStream. О компоненте - TcxPropertiesStore.
Cryogen2003
О ваших вопросах не забыл. Не судите строго что допытывался у вас разъяснений и ничего вразумительного не предложил в ответ. Попробую оправдаться - в последнее время что-то уж совсем со временем стало туго. ). Но, думаю, в скором смогу найти пару часов на ваши вопросы. Как будем результат - вы его здесь сразу же увидите.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 02:16 21-06-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Большое спасибо. Буду очень ждать

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

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 09:42 21-06-2010
Petrenuk

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

Цитата:
а надо ли так часто обновлять? сколько раз в секунду ты обновляешь грид?

 
Таблицу я обновляю 30 раз в секунду, точнее не таблицу, а одну или несколько ячеек. Обновляется она при приходе сообщения от сервера (реализация не имеет значения), потому что в этих ячейках может находиться время (в фреймах от начала проигрывания видео-файла). Сделать это необходимо, нужно заказчику. Короче, в чем задача, как сделать так, чтобы обновлялось только одно поле, а вся остальная таблица вообще не была задействована.
 
 
 
Добавлено:

Цитата:
у колонки свойство Properties ставишт в Image.  

 
А как поставить Image? мне это нужно сделать обязательно из кода.
Не катит ни

Код:
Col.Properties := Image;

ни

Код:
Col.Properties := [Image];

 
Короче, я понял как вставлять картинки, но не понял как изменить Properties.

Всего записей: 4 | Зарегистр. 16-06-2010 | Отправлено: 12:45 21-06-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[b]Petrenuk[/b]
Col.PropertiesClass:=tcximageproperties;


Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 21:59 21-06-2010
mmi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Petrenuk
 
30 раз в секунду не многовато ли? Про 25-ый кадр слышали?
 
Вот попробовал сделать пример, подрагивания не увидел.
Delphi 6, Grid 5.11, используется еще TdxMemData - 1.8.9
Подробнее...

Всего записей: 28 | Зарегистр. 28-01-2003 | Отправлено: 09:17 22-06-2010
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[b]Petrenuk[/b]

Давай свою форму и pas файл.
Тоже сварганил тест(delphi2009 + 49девки), что со скином что без все четко.

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

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

Цитата:
Col.PropertiesClass:=tcximageproperties;
linker_2009, спасибо большое.
 
Проблему с "мерцанием" решил, с помощью чтения вопросов к техподдержке DevExpress, если кому-то пригодится:
 

Код:
TableView.ViewData.Site.DoubleBuffered := True;

 
 
Добавлено:
Так, то решение с потоками про TBitmap мне не подходит, оно слишком громоздкое, да и просто должно существовать более простое решение.
 
Задача: есть функция, которая возвращает созданный объект TBitmap, есть в таблице только Один столбец, у которого Properties = Image. Как вставить этот bitmap в известную ячейку с координатами [Row,Col]?
 
то есть в идеале это должно бы вылядеть как-то так:  

Код:
TableView.BackgroundBitmaps.Values[i,j] := TranSupplier.GetBitmap(i);

или так:

Код:
TableView.DataController.Values[i,j] := TranSupplier.GetBitmap(i);

 
 
 
Добавлено:

Код:
 
SavePicture(TranSupplier.GetEffectBitmap(i),AValue);
TableView.DataController.Values[i,j] := AValue;

 
Вот так надо делать.
GetEffectBitmap возвращает TPicture.
AValue - строка.

Всего записей: 4 | Зарегистр. 16-06-2010 | Отправлено: 13:00 22-06-2010 | Исправлено: Petrenuk, 15:02 22-06-2010
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть cxGrid, у него 2 уровня. главный и дочерний с вьювами и подключаемыми к ним сорсами, связи настроены. отображается все правильно.
хочу сделать кнопку с универсальным обновлением, код такой:
 

Код:
 
    for dsInd := 0 to VetArrivalForm.ComponentCount - 1 do
      if (VetArrivalForm.Components[dsInd] is TcxGrid) then
        with (VetArrivalForm.Components[dsInd] as TcxGrid) do
          if CanFocusEx then
            for i := 0 to ViewCount - 1 do
              if (Views[i] is TcxGridDBTableView) then
                with TcxGridDBTableView(Views[i]).DataController do
                  if DataSource <> nil then if DataSource.DataSet.Active then
                    DataSource.DataSet.Refresh;
 

при нажатии вылетает ошибка "List index out of bounds (445)" (если дочерний список раскрыт или раскрыт и закрыт)
 
если дочерний уровень перенести на отдельный грид и связать сорсы, то работает нормально

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 14:05 24-06-2010
TechnoDreamer

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как народ реализует добавление новых строчек в cxGrid? (TableView, BoundMode). Строчка "Click here to add new record" вверху таблицы выглядит стильно, и с мышкой довольно удобно. Но вот последовальное добавление большого количества записей не очень удобно (мягко говоря). Нельзя эту строку каким то образом отправить вниз таблицы? Было бы удобно переходить с последнего ряда на нее и заполнять столбцы с клавы.

Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 14:34 24-06-2010
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Используй клавишу Insert или нажатие клавиши Вниз в конце таблицы. И посмотри набор свойств OptionsData у грида.

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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
про Insert знаю, но происходит перекидывание на верхнюю строку, вводим все поля. Дальше как? Нажатие Enter на последнем поле (столбце)., ничего не дает, нажатие стрелку вниз добавляет запись, но переходит на первую строку в грид. В OptionsData всё включено.
При нажатии стрелки вниз на последней строке ничего не происходит. Может какое свойство отвечает?
В принципе, могу конечно вручную сделать, что бы после добавления новой записи перекидывало вниз, но будет прикольно, если потом окажется, что это достигается устновкой пары свойств. Уже сколько раз делал велосипед, что бы потом обломаться...

Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 19:12 24-06-2010
X11



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

Цитата:
про Insert знаю, но происходит перекидывание на верхнюю строку

Так отключи её
 

Цитата:
В OptionsData всё включено.  


Цитата:
При нажатии стрелки вниз на последней строке ничего не происходит.  

Если Append включен в гриде и в наборе данных (в датасете), то должна вниз добавляться пустая строка.
 
На крайний случай сделай пример с использованием dxMemData, желательно для неюникодной версии Delphi.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 09:39 25-06-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