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

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

Автор: mdid
Дата сообщения: 02.01.2014 02:01
Mentally
юзайте DBtree от девок, и их же встроенный порт в эксель
Автор: G787
Дата сообщения: 08.01.2014 06:50
Как на тулбаре создать кнопку ?
Автор: ChSerg
Дата сообщения: 08.01.2014 08:25
G787
Все делается через бар-манагер. Документацию не пробовали смотреть?
Автор: X11
Дата сообщения: 08.01.2014 09:12
G787, посмотри этот пример http://www.sql.ru/blogs/x11/1340
Автор: Graach
Дата сообщения: 09.01.2014 11:16
Была задача, по событию OnEditValueChanged для ячейки в TcxdbVerticalGrid определить FieldName, к которому этот компонент привязан. Долго искала, особенно если в гриде есть не простой TcxDBEditorRow, но и TcxDBMultiEditorRow. И здесь в ветках встречается этот вопрос, но нет точного ответа. В общем на сайте дев можно собрать ответ:

http://www.devexpress.com/Support/Center/Question/Details/Q101512 How can i get the focused row of a cxdbMultiEditorRow
http://www.devexpress.com/Support/Center/Question/Details/Q352060 Get focused Editor of MultiEditorRow
http://www.devexpress.com/Support/Center/Question/Details/DQ43855 I would like to get FieldName from FocusedRow
http://www.devexpress.com/Support/Center/Question/Details/DQ15369 How to detect focused datacell (index etc.) in MultiEditorRow
https://www.devexpress.com/Support/Center/Question/Details/A1102 How to obtain the CX editor corresponding to the ActiveControl property

чтобы сама же потом не искала заново.

Получается:

Код:
type TcxVerticalGridAccess = class(TcxVerticalGrid);
...
if aColumn is TcxDBEditorRow then
Result := TcxDBEditorRow(TcxDbVerticalGrid(TControl(Sender).Parent).FocusedRow).Properties.DataBinding.FieldName
else if aColumn is TcxDBMultiEditorRow then
Result := TcxDBMultiEditorRow(TcxDbVerticalGrid(TControl(Sender).Parent).FocusedRow).Properties.Editors[ TcxVerticalGridAccess(TControl(Sender).Parent).Controller.CellIndex].DataBinding.FieldName;
Автор: G787
Дата сообщения: 09.01.2014 13:02
Есть ли что-то встроеное в Grid что бы сэйвить Bands и Columns ?


X11 Thx!
Автор: X11
Дата сообщения: 09.01.2014 14:41
Сейвить - это что? Сохранять? Неужели не хватает запаса русского языка ))))
Есть 2 метода:
<TcxGridDBTableView>.StoreToIniFile
<TcxGridDBTableView>.RestoreFromIniFile
Автор: reenoip
Дата сообщения: 10.01.2014 07:55
В триале 13.2.2 появились файлики:


Цитата:
\ExpressSkins Library\Binary Skin Files\Office2013DarkGray.skinres
\ExpressSkins Library\Binary Skin Files\Office2013LightGray.skinres


Реально ли их прикрутить к 13.1.5 (из копилки)? Если реально - то как именно?
Игра с файлами *.bpl и *.dcu ничего не даёт :(
Автор: ChSerg
Дата сообщения: 10.01.2014 19:23

Цитата:
Игра с файлами *.bpl и *.dcu ничего не даёт

Интересно, это как это Вы с ними играете?
А про использование custom skins написано в хелпе в разделах:
"How to Apply Custom Skins in the Application" и
"How to Apply Skins in the Application".
Удачи....
Автор: delover
Дата сообщения: 10.01.2014 19:42

Цитата:
Интересно, это как это Вы с ними играете?


Я думаю к ресам бинарных пакетов BPL, редактором ресурсов, можно добавить "файлики". А к *.dcu - может, быть это даже *.dfm, лучше уточнить. Но, как сделать гибрид из двух версий, может там текст какой прописать?
Автор: X11
Дата сообщения: 10.01.2014 22:27
В составе идёт dxSkinEditor и справка для него есть.
Автор: reenoip
Дата сообщения: 11.01.2014 09:45
Спасибо, сейчас начну разбираться...
Автор: G787
Дата сообщения: 11.01.2014 20:29
Как сделать выравнивание по центру для текста ячейки TcxGrid ?
Автор: X11
Дата сообщения: 11.01.2014 20:42
Мой хрустальный шар мне подсказывает, что у тебя не выбрано ничего в свойстве properties.
Так вот. Если Выбрать там TextEdit, то увидишь свойство Alignment

Автор: G787
Дата сообщения: 11.01.2014 22:00
X11
Не помогает.
Автор: X11
Дата сообщения: 11.01.2014 22:11
всё работает, вот картинко


ложись спать, утро вечера мудренее )))
Автор: G787
Дата сообщения: 12.01.2014 05:59
X11
ПАрдон, все работает
Автор: G787
Дата сообщения: 12.01.2014 17:46
В событии OnEditValueChanged пытаюсь уловить состояние чекбокса, однако все время фэйл.

procedure TFormProject.cxGrid1TableView1EditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
var BooVal: Boolean;
begin

if AItem.Index = 0 then
begin
BooVal:= cxGrid1BandedTableView1.DataController.GetDetailDataController(0, 0).GetValue(0, 0);
ShowMessage( BoolTostr(BooVal) );
end;
end;


Другими словами говоря как узнать состояние чекбокса в гриде сразу после его изменения ?
Автор: X11
Дата сообщения: 12.01.2014 18:42

Цитата:
сразу после его изменения

Хочется спросить, читали:
ms-help://borland.bds5/ExpressQuantumGrid.BDS5/ExpressQuantumGrid/IDH_TcxCustomGridTableView_OnEditValueChanged.htm


Цитата:
If the ImmediatePost property of the editor's Properties object is set to True, the edit value will be posted immediately after it has been changed.


Добавлено:

Цитата:
GetDetailDataController

а это что.... уверен, что нужно в детальном ловить?

Добавлено:

Цитата:
cxGrid1TableView1EditValueChanged


Цитата:
cxGrid1BandedTableView1.DataController.GetDetailDataController(0, 0).GetValue(0, 0);


редактируешь ты основную таблицу, а данные тянешь из детальной таблицы...
а что означают (0, 0) в обоих случаях?
Автор: G787
Дата сообщения: 12.01.2014 19:35
Это я кусочек кода выдрал не лучший но всеравно не работает даже если так:

procedure TFormProject.cxGrid1TableView1EditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
var BooVal: Boolean;
begin
if AItem.Index = cxGrid1TableView1Column3.Index then
begin
BooVal:= Sender.DataController.GetValue(0, cxGrid1TableView1Column3.Index);
ShowMessage( ':'+ BoolTostr(BooVal) );
end;
end;

Добавлено:
AItem.FocusedCellViewInfo.Value; тоже не работает

Добавлено:
Единственное что помогло так это

перед обработкой вызвать

Sender.Controller.FocusNextCell(False);
Sender.Controller.FocusNextCell(TRue);

но это вариант через одно место ...
Автор: X11
Дата сообщения: 12.01.2014 21:30
Не знаю, у меня получилось
тестовый проект
http://rghost.ru/51604069
D2007 Dev 13.1.2
Автор: G787
Дата сообщения: 12.01.2014 22:24
X11

Ну так и твоя демка c багом.
Отметь оба чекбокса, а затем меняй только нижний .

Добавлено:
Вроде помогло ImmediatePost
Автор: reenoip
Дата сообщения: 14.01.2014 11:10

Код: procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
var
i: integer;
begin
i:=dxAlertWindowManager1.Count;
dxAlertWindowManager1.Items[i].Close;
end;
Автор: Kmich
Дата сообщения: 14.01.2014 11:21
reenoip
делай count-1 должно помочь
Автор: reenoip
Дата сообщения: 14.01.2014 11:29

Код: procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
var
i: integer;
begin
for i:=0 to dxAlertWindowManager1.Count do
begin
dxAlertWindowManager1.HotWindow.Close;
end;
Автор: Lellka
Дата сообщения: 14.01.2014 13:39
доброго времени суток всем!
При компиляции приложения с компонентами более новой версии DevExpress появились ошибки, в частности TcxDBTreeListColumn(TL.DataControll er.GetItemByFieldName('INFO')).Item Index
в более новой версии отсутствует свойство - GetItemByFieldName, подскажите пожалуйста каким свойством возможно заменить?
Автор: X11
Дата сообщения: 14.01.2014 15:20
Вопрос по многопользовательской работе с cxScheduler

cxScheduler привязан к компоненту cxSchedulerDBStorage, который в свою очередь привязан к TDataSet и все данные хранятся в Firebird.
С программой работают несколько пользователей.
Кроме основных полей, в таблице есть поле USER_ID.
Т.е. запрос выглядит так:


Код: SELECT
S.ID,
S.ACTUALFINISH,
S.ACTUALSTART,
S.CAPTION,
S.EVENTTYPE,
...
S.USER_ID

FROM
TSCHEDULER2 s
where USER_ID = :USER_ID
Автор: makz
Дата сообщения: 15.01.2014 01:45
X11
Для разделения пользователей предназначены ресурсы, зачем велосuser_id изобретать?
Обновлять данные можно по алерту в базе - в триггерах POST_EVENT сделать, и ловить его приложением.
Автор: X11
Дата сообщения: 15.01.2014 10:03
makz, спасибо, почитаю.
Может есть информация на русском, примеры и т.д?


Добавлено:
У меня уже есть таблица в базе для ресурсов, есть в приложении набор данных для этой таблицы, подключенный к cxSchedulerHolidays



а что дальше не могу найти нормальной информации
и усложнять проект сильно много не очень хочется

Добавлено:

Цитата:
зачем велосuser_id изобретать?

Дело в том, что к набору данных привязана сетка cxGrid, которая отображает в небольшом окошке список событий на главной форме приложения. И как отфильтровать события по пользователям в этом случае - я пока не понял. А cxSchedulerGridConnection использовать не хочу, глючит оно шибко-шибко.
Автор: makz
Дата сообщения: 16.01.2014 08:04
X11
К сожалению на русском ничего не попадалось.
Демо есть вместе с девексами, в копилке.
Для использования ресурсов необязательно датасет заводить, их можно добавлять прямо в storage (-Resources.Items). Планировщик показывает только те, у которых флаг Visible=True.
Сетку с событиями можно собственно встроенным в нее саму фильтром обрабатывать.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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