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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я всё же со своей проблемой более детально:
 
   
 
Вот в данном случае я ввожу символы "la", контрол автоматом добавляет туда полное имя первого элемента. И свойство Text соответственно равно не "la" а полному тексту.
Каким то образом получить только ту часть что введена пользователем можно?
 
P.S. Вообще цель сделать фильтрацию по всему тексту, а не только по первым символам.
Т.е. к примеру есть две записи: "оранжевый апельсин" и "апельсин оранжевый", пользователь начинает набирать "апельсин" и ему нужно выводить обе записи, а не только вторую. Может я вообще не в ту сторону смотрю и всё намного легче?

Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 02:38 30-09-2010
X11



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

Цитата:
P.S. Вообще цель сделать фильтрацию по всему тексту, а не только по первым символам.
Т.е. к примеру есть две записи: "оранжевый апельсин" и "апельсин оранжевый", пользователь начинает набирать "апельсин" и ему нужно выводить обе записи, а не только вторую. Может я вообще не в ту сторону смотрю и всё намного легче?

А мой метод не подошёл?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:10 30-09-2010
Prizzzrak777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может быть немного не по теме, но вопрос в следующем:
есть TMemTableEh или ClientDataSet или dxMemData, т.е. данные хранятся в памяти. Компоненты лежат в DataModule. Данные заполняются в новом потоке. Если формы с cxGrid или DBPivotGrid не отображаются все проходит гладко. Если обновление данных происходит при отображение грида вылетает AccessVioletion, list index bound,invalid pointer operation, access priveligies ошибки 1400 (Недопустимый дескриптор окна) и 5 (отказано в доступе). Каждый раз по разному обычно все сводится к Access Violetion и этим ограничивается.  
При заполнении из основного потока все происходит гладко и никакого намека на ошибки.
Может кто пытался делать что то подобное?  
 
Обычный DBGrid отробатывает нормально. Synchronize решает проблему но это не вариант. Для создания потока использую стандартный класс TThread

Всего записей: 13 | Зарегистр. 17-09-2010 | Отправлено: 14:42 30-09-2010 | Исправлено: Prizzzrak777, 15:16 30-09-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prizzzrak777
отключить перерисовку контролов при заполнении датасета из потока.
DisableControls/EnableControls. или у самих контролов BeginUpdate/EndUpdate

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 14:59 30-09-2010
Prizzzrak777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka
пробовал ничего не менялось. Отключал естественно из созданного потока
 
Добавлено:
Даже DataSource отрубал на момент загрузки данных. При подключении те же ошибки
 
Добавлено:
Хотя может не то и не там отключал  

Код:
 
 Form3.cxDBPivotGrid1.BeginUpdate;
  Form3.cxDBPivotGrid1.DataSource:=nil;
 
  with DataModule2 do
  begin
    DataSource1.Enabled:=false;
    MemTableEh1.EmptyTable;
 
    for I := 0 to 100 do
    begin
      dxMemData1.Append;
      dxMemData1test1.Value:=i*100;
      dxMemData1test2.Value:=i*200;
      dxMemData1test3.Value:='pos1';
 
      dxMemData1.Post;
      dxMemData1.Append;
      dxMemData1test1.Value:=i*300;
      dxMemData1test2.Value:=i*400;
      dxMemData1test3.Value:='pos2';
      dxMemData1.Post;
    end;
    DataSource1.Enabled:=True;
  end;
   Form3.cxDBPivotGrid1.DataSource:=DataModule2.DataSource1;
   Form3.cxDBPivotGrid1.EndUpdate;
 

Всего записей: 13 | Зарегистр. 17-09-2010 | Отправлено: 15:01 30-09-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prizzzrak777
имхо отключение надо делать не в ПОТОКЕ, а до начала потока... это относиться и к подключению, после потока... или в потоке но только через Synchronize.

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 15:20 30-09-2010
Prizzzrak777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f3ka
Спасибо
 
Добавлено:
C DBPivotGrid понятно, правда запяси исчезают на время обновления и это занимает некоторое время. А вот с cxGrid остается ошибка 5 (Отказано в доступе). На гриде 3 сорса, 2 клона, и того 5 уровней.

Всего записей: 13 | Зарегистр. 17-09-2010 | Отправлено: 15:23 30-09-2010 | Исправлено: Prizzzrak777, 15:45 30-09-2010
marser

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prizzzrak777
Я смутно вспоминаю, что сталкивался с чем-то подобным. Меня спасло явное отключение DataSet от всех DataSource (DataSource.DataSet := nil) до начала потока и подключение DataSet (DataSource.DataSet := DataSet) после завершения потока.

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 17:19 30-09-2010
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Prizzzrak777
Не знаю как в Делфях - в .Net есть такой способ запускать поток отдельный - BeginInvoke(). Обычно он переопределяется с указанием нужных параметров (контролы и компопненты, например, передавать). Я таким способом делал 2 потока: один заполнял а другой отображал прогресс выполнения задачи.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:15 01-10-2010
TechnoDreamer

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

Цитата:
P.S. Вообще цель сделать фильтрацию по всему тексту, а не только по первым символам.  
Т.е. к примеру есть две записи: "оранжевый апельсин" и "апельсин оранжевый", пользователь начинает набирать "апельсин" и ему нужно выводить обе записи, а не только вторую. Может я вообще не в ту сторону смотрю и всё намного легче?
А мой метод не подошёл?

 
Ну вы написали как пользоваться PopupEdit - это я и так умею. Только то, что там в Popup будет Grid мне ничего не дает. Как фильтровать грид на основе вводимых символов я тоже не знаю.
 
P.S. Можно конечно в OnKeyPress строить строку на основе нажатых кнопок, но слишком геморрный способ.

Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 09:27 01-10-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А на OnFilterRecord заложись свою филтьтрацию и все
Просто обычным Pos искать искомую подстроку в том поле, которое тебе нужно.

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

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 09:48 01-10-2010
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите плз..можно ли в cxLookupComboBox сделать раскраску как например по событию GetContentStyle в cxGrid?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 09:59 01-10-2010
X11



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

Цитата:
Как фильтровать грид на основе вводимых символов я тоже не знаю.  

да включи ты просто FilterRow.visible

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:24 01-10-2010
marser

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

Цитата:
подскажите плз..можно ли в cxLookupComboBox сделать раскраску как например по событию GetContentStyle в cxGrid?

Попробуй использовать cxExtLookupComboBox, а с cxLookupComboBox сомневаюсь что получится.

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 10:27 01-10-2010
TechnoDreamer

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

Цитата:
А на OnFilterRecord заложись свою филтьтрацию и все  
Просто обычным Pos искать искомую подстроку в том поле, которое тебе нужно.

Вопрос то не в этом, фильтрацию я думаю оптимальнее датасетом делать. Вопрос в том КАК ПОЛУЧИТЬ строку по которой делать фильтрацию.
Если есть элемент "Апельсин оранжевый" то в случае с лукап, если я введу просто "Апельсин" то свойство текст будет равно все равно "Апельсин оранжевый". И SelStart, SelEnd не работают в данном случае.
А если это грид, то я вообще не знаю как получить искомую строку.

Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 10:31 01-10-2010
mdid

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

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 10:40 01-10-2010
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TechnoDreamer
Секунду? А где ты это в гриде вводишь? Я думал что ты в отдельном edit компоненте вводишь и у тебя в гриде уже фильтруется. А если в самом гриде, то там только инкрементальный поиск и не более.
Либо при включенном фильтре можно через like

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

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 10:42 01-10-2010
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TechnoDreamer
имхо твой случай здесь

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 11:02 01-10-2010
marser

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

Цитата:
да там такая же хрень

Ты хочешь сказать, что у View событие OnCustomDrawCell не работает?

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 11:04 01-10-2010
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marser
я хочу сказать что в 46 девах в cxExtLookupComboBox нет события OnCustomDrawCell

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 11:11 01-10-2010 | Исправлено: mdid, 11:13 01-10-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