Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: HunterNS
Дата сообщения: 17.07.2011 18:57
Подскажите, возможно ли динамически подгрузить скины DevExpress в проект?
У меня программа, в ней 1-2 наиболее удачных скина. Я не хочу все скины добавлять в проект, так как размер ехе-шника сильно вырастит.
Существует ли возможность загрузить скины из внешних файлов (таких как *.skinres в папке C:\Users\User\Documents\DevExpress VCL\ExpressSkins Library\Binary Skin Files\ или каких-нибудь других)?
Автор: linker_2009
Дата сообщения: 17.07.2011 20:17
HunterNS
существует, как раз таки *.skinres
Например через
dxSkinsUserSkinLoadFromFileByIndex('<YouFileSkinName>.skinres',<indexSkin>)
Посмотрите в справке подробно.
Автор: HunterNS
Дата сообщения: 17.07.2011 20:28
linker_2009
Преогромнейшее спасибо.
Автор: X11
Дата сообщения: 18.07.2011 07:06

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


В Delphi меню Project/Skin Options в самом низу. Там включи только нужные скины.
Но это будет НЕ динамически.
Автор: HunterNS
Дата сообщения: 18.07.2011 08:14
X11
Это я знаю, но мне нужно именно подгружать из файла, чтобы размер ехе-шника был "минимален", но при этом была возможность менять скины (много разных скинов).
linker_2009 подсказал правильное решение.

Ещё вопрос. Есть ли у кого *.hol-файл со списком праздников (российских) для компонента cxSchedulerHolidays?
Автор: fortezza
Дата сообщения: 18.07.2011 14:03
Здравствуйте.
Подскажите, почему, когда присваиваю

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;
Автор: mdid
Дата сообщения: 18.07.2011 15:52
кто то работал с фильтрами с условием "foInList" у меня не реагирует на

Код:
HistoryView.DataController.Filter.AddItem(nil,HistoryViewType,foInList,'1,2,3',OtherButton.Caption);
HistoryView.DataController.Filter.Root.BoolOperatorKind:=fboOr;
Автор: marser
Дата сообщения: 18.07.2011 16:26
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);
Автор: mdid
Дата сообщения: 18.07.2011 16:42
marser
круть...работает...пасиба..а случаем на второй вопрос ответа не знаете?
Автор: vladman
Дата сообщения: 19.07.2011 02:05
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;
Автор: fortezza
Дата сообщения: 20.07.2011 10:00
можно ли сделать чтобы в столбце porp = cxButtonEdit кнопка отображалась постоянно, а не только когда выделяю эту ячейку?
Автор: X11
Дата сообщения: 20.07.2011 10:03
Да, уже раза три спрашивали.
Свойство Options ShowEditButtons
Автор: X11
Дата сообщения: 21.07.2011 11:10
Если кто помнит, то была проблема у DevExpress при использовании некоторых компонент в DLL. В частности у меня вываливалось AV, если у cxGrid`а была хоть одна колонка при создании формы в плагине. Также невозможно было создать колонку во время исполнения программы. Это было в версии 56.

Исправлялось легко.
в конец модуля формы достаточно было добавить:

Код: initialization
dxInitializeGDIPlus;


finalization
dxFinalizeGDIPlus;

end.
Автор: linker_2009
Дата сообщения: 21.07.2011 11:30
X11
Покапайся в исходниках, процедурки либо переименовали, либо перенесли в другой модуль.
Автор: X11
Дата сообщения: 21.07.2011 11:31
Нашёл.
Они в версии 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."
Автор: andreybear
Дата сообщения: 21.07.2011 19:20
Проблема с созданием списка mdi-окон в TdxBarListItem.
В справке приведен пример, который работает. Однако, если mdi-окно является наследником другого mdi-окна, то описанный в справке способ не работает, т.е. объект не добавляется в список, и, соответственно не удаляется из него - ничего не происходит при создании/уничтожении окна. Может кто-нибудь сталкивался с подобной проблемой?
Автор: andreybear
Дата сообщения: 22.07.2011 10:51
Разобрался! Дело было не в наследовании.
Автор: mdid
Дата сообщения: 22.07.2011 11:52
народ как решить проблему TdxBarPopupMenu и в котором TcxBarEditItem имеет тип CheckBox
и активный какой то скин?
проблема в том что итем типа CheckBox он отрисовывает только на ширину надписи..а все остальное пространство "гуляет"...можно как то заставить его рисовать на всю ширину TdxBarPopupMenu а не на сколько хватает текста?
Автор: X11
Дата сообщения: 22.07.2011 12:55
Новые девы 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;
Автор: linker_2009
Дата сообщения: 22.07.2011 18:25
mdid
Скриншот бы... а то не понятно, что гуляет...
Автор: alex01
Дата сообщения: 23.07.2011 06:30
Коллеги, при использовании XtraGrid есть проблема:



При клике на «+» не активируется дочерняя gridview и не могу добавить строку в дочернюю таблицу. Перекопал все свойства gridcontrol-а но ничего подходящего не нашел.
Подскажите, кто сталкивался с подобным, как решить проблему?
Автор: mdid
Дата сообщения: 23.07.2011 12:08
linker_2009


на верхнем рисунке прорисовывает пункт до конца..а вот итем с типом чекбокса(рис 2) только на ширину текста
особенно оно криво выглядит когда название пунктов имею разную длину
Автор: linker_2009
Дата сообщения: 23.07.2011 13:02
mdid
Теперь понятнее))) Для TcxBarEditItem это норма, работает по типу контейнера. Не могу ничего посоваетовать кроме использования обычной кнопки с выставленым свойством ButtonStyle:=bsChecked.(Свойство Down отвечает за состояние чека)
Автор: xokc
Дата сообщения: 24.07.2011 15:51
alex01
Обычно такое бывает при не полностью/неправильно выставленных свойств про ключевые поля и Master/Detail
Автор: alex01
Дата сообщения: 24.07.2011 16:39
Xokc спасибо за наводку, разобрался. Feature Browser мне помог!
Еще вопрос:
Не работает код для связанного gridView2 т.е. нет не ошибок, не переданных данных.


Код:
Dim grv As GridView = GridView2
Dim i As Integer = GridView2.FocusedRowHandle
grv.SetRowCellValue(i, "Cartridge", dr("Id").ToString)
Автор: AndreyDev
Дата сообщения: 25.07.2011 11:19
Доброго времени суток.
Использую cxDBVerticalGrid и не могу выравнять поле числовой по левому краю. Оно по умолчанию выравнивается по правому, только в режиме редактирования значение с права, а хотелось что бы оно всегда там было.
Перекопал все возможные свойства, нашел только HeaderAlignmnet, выравнивание для заголовка.
Может кто сталкивался ?

Спасибо!
Автор: marser
Дата сообщения: 25.07.2011 11:52
AndreyDev
<OurEditorRow>.Properties.EditProperties.Alignment.Horz
Автор: AndreyDev
Дата сообщения: 25.07.2011 12:03
marser
Большое спасибо!
Проморгал видать
Автор: fitget
Дата сообщения: 25.07.2011 13:14
alex01

А что такое GridView2? Откуда он взялся? Возможно это pattern, а не clone.
Автор: alex01
Дата сообщения: 25.07.2011 13:57
fitget


GridView2 добавил с помощью визуального инструмента управления GridControl1. Добавил новый level, а затем конвертнул его GridView2. Ответить на то pattern это или clone затрудняюсь.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.