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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, возможно ли динамически подгрузить скины DevExpress в проект?
У меня программа, в ней 1-2 наиболее удачных скина. Я не хочу все скины добавлять в проект, так как размер ехе-шника сильно вырастит.
Существует ли возможность загрузить скины из внешних файлов (таких как *.skinres в папке C:\Users\User\Documents\DevExpress VCL\ExpressSkins Library\Binary Skin Files\ или каких-нибудь других)?

Всего записей: 7 | Зарегистр. 20-06-2011 | Отправлено: 19:57 17-07-2011
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HunterNS
существует, как раз таки *.skinres
Например через
dxSkinsUserSkinLoadFromFileByIndex('<YouFileSkinName>.skinres',<indexSkin>)
Посмотрите в справке подробно.

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 21:17 17-07-2011
HunterNS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
linker_2009
Преогромнейшее спасибо.

Всего записей: 7 | Зарегистр. 20-06-2011 | Отправлено: 21:28 17-07-2011
X11



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

Цитата:
У меня программа, в ней 1-2 наиболее удачных скина. Я не хочу все скины добавлять в проект, так как размер ехе-шника сильно вырастит.  

 
В Delphi меню Project/Skin Options в самом низу. Там включи только нужные скины.
Но это будет НЕ динамически.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 08:06 18-07-2011
HunterNS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
Это я знаю, но мне нужно именно подгружать из файла, чтобы размер ехе-шника был "минимален", но при этом была возможность менять скины (много разных скинов).
linker_2009 подсказал правильное решение.
 
Ещё вопрос. Есть ли у кого *.hol-файл со списком праздников (российских) для компонента cxSchedulerHolidays?

Всего записей: 7 | Зарегистр. 20-06-2011 | Отправлено: 09:14 18-07-2011 | Исправлено: HunterNS, 09:17 18-07-2011
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Подскажите, почему, когда присваиваю  
 
TcxGridDBColumn(cmp).Properties.OnChange := cxColBEPropChange;
 
у грида на этой колонке перестает срабатывать cxGridDBTVEditValueChanged.
 

Код:
 
procedure TVetBaseForm.cxColBEPropChange(Sender: TObject);
var col : TcxGridDBColumn;
    tv : TcxGridDBTableView;
begin
  tv := TcxGridDBTableView(TcxGridSite(TControl(Sender).Parent).GridView);
  if (tv.Controller.FocusedRow is TcxGridFilterRow) then Exit;
  col := TcxGridDBColumn(tv.Controller.FocusedColumn);
 
  if (col.Properties is TcxCustomButtonEditProperties) then
    with TcxCustomTextEdit(tv.Controller.EditingController.Edit) do
      begin
        if VarToStr(EditingValue) = '' then
          if col.Tag <> -1 then
            ClearValue(ConnMassForm[col.Tag]);
      end;
end;
 
procedure ClearValue(ConnFld : TConns);
begin                        
  if Assigned(ConnFld.fieldIDLink)   then ConnFld.fieldIDLink.EditValue := null;
  if Assigned(ConnFld.fieldNameLink) then ConnFld.fieldNameLink.EditValue := null;
  if Assigned(ConnFld.fieldCodeLink) then ConnFld.fieldCodeLink.EditValue := null;
end;
 

 
ConnMassForm хранит ссылки на 2-а зависимых столбца и на самого себя, т.е. когда очищаем значение в одном - очищаем в остальных. Я думаю проблемма именно в этом.. Но почему так происходит?

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 15:03 18-07-2011
mdid

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

Код:
 
    HistoryView.DataController.Filter.AddItem(nil,HistoryViewType,foInList,'1,2,3',OtherButton.Caption);
    HistoryView.DataController.Filter.Root.BoolOperatorKind:=fboOr;
 

на на всякие "foEqual" без проблем
 
и еще вопрос
как создать фильтр типа
Код:
(a=1 or b=2) and (c like '3' or d like '3')

я так понял что
Код:
HistoryView.DataController.Filter.Root.BoolOperatorKind:=fboOr;

создает общее правило фильтрации а можно ли комбинированное?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 16:52 18-07-2011 | Исправлено: mdid, 17:18 18-07-2011
marser

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

Цитата:
кто то работал с фильтрами с условием "foInList" у меня не реагирует на  

Попробуйте так  

Код:
V := VarArrayCreate([0,2], varInteger);  
V[0] := 1; V[1] := 2; V[2] := 3;  
HistoryView.DataController.Filter.AddItem(nil,HistoryViewType,foInList,V,OtherButton.Caption);

Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 17:26 18-07-2011 | Исправлено: marser, 17:27 18-07-2011
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marser
круть...работает...пасиба..а случаем на второй вопрос ответа не знаете?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 17:42 18-07-2011
vladman

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

Цитата:
как создать фильтр типа
(a=1 or b=2) and (c like '3' or d like '3')
 

Попробуйте так

Код:
var
  vItemList: TcxFilterCriteriaItemList;
begin
  <Your>cxGridDBTableView.DataController.Filter.PercentWildcard := '*';
  <Your>cxGridDBTableView.DataController.Filter.BeginUpdate;
  try
    <Your>cxGridDBTableView.DataController.Filter.Root.Clear;
    <Your>cxGridDBTableView.DataController.Filter.Root.BoolOperatorKind := fboAnd;
    vItemList := <Your>cxGridDBTableView.DataController.Filter.Root.AddItemList(fboOr);
    vItemList.AddItem(<Your>cxGridDBTableViewField1, foEqual, '1', '1');
    vItemList.AddItem(<Your>cxGridDBTableViewField2, foEqual, '2', '2');
    vItemList := <Your>cxGridDBTableView.DataController.Filter.Root.AddItemList(fboOr);
    vItemList.AddItem(<Your>cxGridDBTableViewField3, foLike, '3*', '3*');
    vItemList.AddItem(<Your>cxGridDBTableViewField4, foLike, '3*', '3*');
  finally
    <Your>cxGridDBTableView.DataController.Filter.EndUpdate;
    <Your>cxGridDBTableView.DataController.Filter.Active := True;
  end;
end;

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 03:05 19-07-2011
fortezza

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно ли сделать чтобы в столбце porp = cxButtonEdit кнопка отображалась постоянно, а не только когда выделяю эту ячейку?

Всего записей: 98 | Зарегистр. 20-10-2009 | Отправлено: 11:00 20-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, уже раза три спрашивали.
Свойство Options ShowEditButtons

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если кто помнит, то была проблема у DevExpress при использовании некоторых компонент в DLL. В частности у меня вываливалось AV, если у cxGrid`а была хоть одна колонка при создании формы в плагине. Также невозможно было создать колонку во время исполнения программы. Это было в версии 56.
 
Исправлялось легко.
в конец модуля формы достаточно было добавить:

Код:
initialization
  dxInitializeGDIPlus;
 
 
finalization
  dxFinalizeGDIPlus;
 
end.

 
Короче. Установил 2011 v1.3. Теперь DLL не компилируется.  

Цитата:
E2003 Undeclared identifier: 'dxInitializeGDIPlus'
E2003 Undeclared identifier: 'dxFinalizeGDIPlus'

 
Что это издевательство такое. То так делают, то эдак ((((
 
И что теперь делать?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:10 21-07-2011
linker_2009



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

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 12:30 21-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашёл.
Они в версии 1.2 поменяли имена процедур и модуль
http://www.devexpress.com/Support/Center/p/B199204.aspx
 
Добавлено:

Цитата:
"Build v2011 vol 1.2
 
1. Breaking Change – Function dxUnitsLoader has been moved from unit dxGDIPlusClasses to the dxCore unit. In applications with custom skins, specify the dxCore unit in the uses clause.
 
2. Breaking Change – The dxGdiPlusInitialize and dxGdiPlusFinalize procedures have been moved from the dxGDIPlusClasses unit to the dxCore unit, and renamed to dxInitialize and dxFinalize. In applications with custom skins, specify the dxCore unit in the uses clause."


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:31 21-07-2011
andreybear

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема с созданием списка mdi-окон в TdxBarListItem.
В справке приведен пример, который работает. Однако, если mdi-окно является наследником другого mdi-окна, то описанный в справке способ не работает, т.е. объект не добавляется в список, и, соответственно не удаляется из него - ничего не происходит при создании/уничтожении окна. Может кто-нибудь сталкивался с подобной проблемой?

Всего записей: 132 | Зарегистр. 21-07-2011 | Отправлено: 20:20 21-07-2011
andreybear

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разобрался! Дело было не в наследовании.

Всего записей: 132 | Зарегистр. 21-07-2011 | Отправлено: 11:51 22-07-2011
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ как решить проблему TdxBarPopupMenu и в котором TcxBarEditItem имеет тип CheckBox  
и активный какой то скин?
проблема в том что итем типа CheckBox он отрисовывает только на ширину надписи..а все остальное пространство "гуляет"...можно как то заставить его рисовать на всю ширину TdxBarPopupMenu а не на сколько хватает текста?

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 12:52 22-07-2011
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Новые девы 2011 1.3 опять не дают покоя.
 
Вот пример кода (на форме только грид ни к чему не привязанный и кнопка):

Код:
procedure TForm9.Button1Click(Sender: TObject);
Var
 i: integer;
begin
      Grid1.DataController.BeginFullUpdate;
      for I := 0 to 100 do
      begin
        Grid1.DataController.append;
        Grid1.Columns[colPhone.Index].EditValue         := '123';
        Grid1.Columns[coPhoneBase.Index].EditValue      := i;
        Grid1.Columns[colText.Index].EditValue          := 'i=' + IntToStr(i);
        Grid1.DataController.post;
      end;
      Grid1.DataController.EndFullUpdate;
end;

 
На второй строке:
Grid1.Columns[coPhoneBase.Index].EditValue      := i;
 
вываливается ошибка:  
RecordIndex out of range
 
В старой версии проблем не было.
 
НО.... как только убираю строку
Grid1.DataController.BeginFullUpdate;
 
ошибка исчезает. Но грид в цикле заполняется очень медленно.
 
Что они опять придумали, никто не сталкивался?
 
Добавлено:
Нашёл в чём проблема.
Отключил dcoImmediatePost
 

Цитата:
dcoImmediatePost If active, the changes to a field value (edit value) are immediately posted to a dataset.

 
Это всё, что было написано по этому свойству в справке. А кто может пояснить, как dcoImmediatePost влияет на добавление записей в цикле с использованием BeginUpdate?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 13:55 22-07-2011 | Исправлено: X11, 14:10 22-07-2011
linker_2009



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mdid
Скриншот бы... а то не понятно, что гуляет...

Всего записей: 143 | Зарегистр. 14-09-2009 | Отправлено: 19:25 22-07-2011
Открыть новую тему     Написать ответ в эту тему

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