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

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

Автор: Cryogen2003
Дата сообщения: 27.04.2010 14:19
indapublic
Это все понятно. И как бы думаю уже каждый наступал на эти грабли и возможно кто-то уже писал что-то, чтобы обойти. Вот и надеялся найти дописанный класс.
Автор: linker_2009
Дата сообщения: 27.04.2010 18:00
mdid
в раних версиях девок можно было фильтр сохранять и выставлять через DataController.Filter.FilterText в паре с DataController.Filter.Active
на текущих не проверял.
также есть метотоды
DataController.Filter.SaveToStream
DataController.Filter.LoadFromStream


Автор: afiget
Дата сообщения: 28.04.2010 00:31
Cryogen2003
Странно, у меня описанных проблем нет.

Я в журналах документов (по сути - это 1 форма, которая заполняется динамически) делаю

Код:
View1.DataController.CreateAllItems();

// тут кусок кода скрыт

PropertiesStore.Components.BeginUpdate;
for i := 0 to View1.ColumnCount - 1 do
begin
AComponent := TcxPropertiesStoreComponent(PropertiesStore.Components.Add);
AComponent.Component := View1.Columns[i];
if View1.Columns[i].Width>400 then
View1.Columns[i].Width:=400;
AComponent.Properties.Add('Width');
AComponent.Properties.Add('Visible');
AComponent.Properties.Add('SortIndex');
AComponent.Properties.Add('SortOrder');
end;
PropertiesStore.Components.EndUpdate;
Автор: SIgor33
Дата сообщения: 28.04.2010 13:04
Скажите как узнать индекс у SelectedObject у компонента dxFlowChart не делая полный перебор всех объектов до ObjectCount и сравнивая тот ли это объект
к объекту можно обратиться по индексу так dxFlowChart1.Objects[i] значит и как-то индекс можно получить.
Автор: mdid
Дата сообщения: 28.04.2010 14:26
свою проблему решил так...сделал динамически создающиеся форма а в них убрал

Код:
cxGrid1DBTableView1.ClearItems;
cxGrid1DBTableView1.DataController.CreateAllItems(False);
и заменил на
cxGrid1DBTableView1.DataController.CreateAllItems(true);
Автор: yurikorz
Дата сообщения: 28.04.2010 14:34
а не пробовал KeyPress

Код: procedure TTest.GridDBTableView1KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key=#13 then ...

end;
Автор: mdid
Дата сообщения: 28.04.2010 15:01
не подходит по причине необходимости нажать enter 2 раза...первый OnValidate для колонки(при этом не срабатывает KeyPress повешанный для вьюхи)
и уже второй enter для KeyPress на вьюхе
Автор: marser
Дата сообщения: 28.04.2010 15:35
mdid
А если так

procedure TForm1.cxGrid1DBTableView1EditKeyDown(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word; Shift:
TShiftState);
begin
// Срабатывает если ячека в соостоянии редактирования
if Key = VK_RETURN then
cxGrid1TableView1.DataController.GotoNext;
end;

procedure TForm1.cxGrid1DBTableView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// Срабатывает если ячека в не в соостоянии редактирования
if Key = VK_RETURN then
cxGrid1TableView1.DataController.GotoNext;
end;
Автор: mdid
Дата сообщения: 28.04.2010 15:54
marser
в режиме редактирования такая штука

Код:
cxGrid1TableView1.DataController.GotoNext;
Автор: marser
Дата сообщения: 28.04.2010 16:13
mdid
Я, из-за лени, проверял на обычном Гриде (TcxGridTableView). Прекрасно работает. А почему не работает на TcxGridDBTableView, х.з. Хотя принципиальной разницы между TcxGridTableView и TcxGridDBTableView не должно быть.
Автор: tanaseduard
Дата сообщения: 28.04.2010 16:59
Есть DBTableView. На Column повешены события для GetPropertiesForEdit и GetProperties. Внутри в зависимости от типа записи делается, подменна Properies. Например, если тип 1 то редактируемый элемент это числовой редактор, для типа 2 это например LookupComboBox и т.д. Хочется добавить возможность переходить по клавише Enter на следующую запись в редакторе (не в DataController а ViewData) и ту же колонку где была нажата клавиша, а также переводить ее в состояние Edit для последующего ввода данных. Для операторов это очень удобно, редактируют значения подряд без ручного перехода на следующую запись.
Автор: marser
Дата сообщения: 28.04.2010 18:32
tanaseduard

Цитата:
Хочется добавить возможность переходить по клавише Enter на следующую запись в редакторе (не в DataController а ViewData)


Переходить на следующую запись не в DataController а ViewData? Не совсем понятно. Поясните, пожалуйста.
Автор: tanaseduard
Дата сообщения: 28.04.2010 22:04
DataController это записи из DataSet в порядке как они поступили из БД, а в ViewData так как отображаются на экране , включая фильтр, сортировку и группировку.
Автор: indapublic
Дата сообщения: 29.04.2010 06:03
cxGrid, одно сгруппированное поле. Необходимо сфокусироваться на последней строке записи. DataController.GotoLast сфокусируется на первом уровне, а необходимо встать еще и на последний Child. Туплю, не могу сообразить. Подскажите
Автор: marser
Дата сообщения: 29.04.2010 06:22
tanaseduard

Цитата:
DataController это записи из DataSet в порядке как они поступили из БД, а в ViewData так как отображаются на экране , включая фильтр, сортировку и группировку.

Заблуждаетесь! Обратите внимание, например, на DataController.FocusedRowIndex,
DataController.Groups и т.д и т.п. Во-вторых, даже в TcxGridTableView есть DataController, но нет никакой связи с DataSet.
Автор: JohnSilver182
Дата сообщения: 29.04.2010 06:33
Кажется dxBarManager1 на форму То свойство Form1.AutoSize=true идет лесом ((

Добавлено:
На сайте даже есть родном вопрос

When add barmanager(for toolbar) component on form, my form autosize
true property isn't work. If remove toolbar on my form, form autosize true
property work good. Did you know this problem?

Добавлено

Создание и показ кнопки на панели. Этот код вызывается при создании каждой дочерней формы

Но почему так сложно . Создаем TdxBarButton , потом к ней прикручиваем TdxBarItemLink ?????



Код: procedure TfmMain.CreateFormButton(form1:TForm);
var
ABar : TdxBar;
NewButton : TdxBarButton;
NewItemLink : TdxBarItemLink;
begin
inc(iButtonsCount);
ABar := Bar1;
NewButton := TdxBarButton.Create(self);
NewItemLink := ABar.ItemLinks.Add;
NewItemLink.Item := NewButton;
NewItemLink.Item.Tag := form1.Handle;
NewButton.Tag := form1.Handle;
NewButton.Name := 'dxButton'+IntToStr(NewButton.Tag);
NewButton.Caption := form1.Caption + '[' + IntToStr(iButtonsCount) + ']';
NewButton.Hint := form1.Caption;
NewButton.OnClick := dxBarButtonClick;
NewButton.ButtonStyle := bsChecked;
NewButton.Down := true;
NewButton.PaintStyle := psCaptionGlyph;
NewButton.GroupIndex := 1;
NewButton.Glyph.Width := 16;//GetSystemMetrics(SM_CXSMICON);
NewButton.Glyph.Height := 16;//GetSystemMetrics(SM_CYSMICON);
NewButton.Glyph.Canvas.Draw(0,0,form1.Icon);
ABar.Control.RepaintBar;
end;
Автор: JohnSilver182
Дата сообщения: 30.04.2010 07:08
+

Автор: CAD_tester
Дата сообщения: 30.04.2010 09:42
Уважаемые подскажите плиз!
Есть программа.....

Спасибо! Вопрос решён!
Автор: indapublic
Дата сообщения: 01.05.2010 01:36
CAD_tester, property MergeCells
JohnSilver182, что сложного в создании Линка? Линк нужен для того, чтобы привязать одну и ту же кнопку к различным контейнерам (главное меню, панель инструментов, контекстное меню)
Автор: vladman
Дата сообщения: 01.05.2010 11:58
indapublic

Цитата:
cxGrid, одно сгруппированное поле. Необходимо сфокусироваться на последней строке записи. DataController.GotoLast сфокусируется на первом уровне, а необходимо встать еще и на последний Child. Туплю, не могу сообразить. Подскажите

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

Код: <Your>cxGridDBTableView.DataController.GotoLast;
if <Your>cxGridDBTableView.Controller.FocusedRow.Expandable then
begin
<Your>cxGridDBTableView.Controller.FocusedRow.Expand(False);
<Your>cxGridDBTableView.Controller.GoToLast(True);
end;
Автор: afiget
Дата сообщения: 01.05.2010 12:53
А если IF заменить на WHILE, то будет работать для любого количества группировок.
Автор: vladman
Дата сообщения: 01.05.2010 14:47
afiget

Цитата:
А если IF заменить на WHILE, то будет работать для любого количества группировок.

Да, точно. И элегантно получается. )
Автор: TechnoDreamer
Дата сообщения: 02.05.2010 02:17
Использую ExpressSkins Library и ExpressBars 6 (49 версия).
Юзаю Tdxbarmanager c несколькими тулбарами (обычные, не риббон). Стиль стоит bmsUseLookAndFeel, все иконки на тулбаре слегка осветленные, нормально отображается только та на которую наводишь мышкой. Мне надо, что иконки отображались все как нарисованы, а не только активная. Если стиль выставить bmsStandard, то они такие как мне нужно, но теряется поддержка скинов на тулбаре.
Наверное есть где-то какое то свойство где это задается, но я не нашел.
P.S. Для управления скинами использую TdxSkinController.
Автор: Andryshok
Дата сообщения: 03.05.2010 13:39
А нет ли у скинов в стиле Office 2010 -> на сайте смотрел, вроде как есть, скачал демо - > там нема, кто может подсказать
Автор: JohnSilver182
Дата сообщения: 03.05.2010 13:57
Hi All
Событие у cxLookupComboBox на EditValueChanged срабатывает если кликать на разные записи , а если кликать на одну то нет. Как это побороть ????
Автор: Andryshok
Дата сообщения: 03.05.2010 14:05

Цитата:
Событие у cxLookupComboBox на EditValueChanged срабатывает если кликать на разные записи , а если кликать на одну то нет. Как это побороть ????



Можт залесть в исходник и дописать...
Автор: JohnSilver182
Дата сообщения: 03.05.2010 14:08

Цитата:

Можт залесть в исходник и дописать...

Смешно .
Автор: afiget
Дата сообщения: 03.05.2010 15:54

Цитата:
Как это побороть ????

Зачем же это побороть, если оно соответствует названию? Что вы хотите получить в итоге?
Автор: JohnSilver182
Дата сообщения: 03.05.2010 16:18

Цитата:
Зачем же это побороть, если оно соответствует названию? Что вы хотите получить в итоге?

Да юзеры иногда приеб...ся . Например экспериментируют :добавляют Иванова , удаляют ,
снова добавляют .
Автор: vladman
Дата сообщения: 03.05.2010 16:54

Цитата:
А нет ли у скинов в стиле Office 2010 -> на сайте смотрел, вроде как есть, скачал демо - > там нема, кто может подсказать

Если вы о VCL компонентах, то пока нет таких. А где вы на сайет видели скин Office 2010? По-моему нет таких и для .Net Winform компонент.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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