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

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

Автор: tanaseduard
Дата сообщения: 02.12.2010 14:52
marser
Нашел в нем такое:
OptionsBehavior.IncSearch:=True;
OptionsBehavior.IncSearchItem:=SomeField;

Работает в рантайме, но вот только если ноды открыты, закрытые ноды он не обрабатывает, хотя загружает сразу все.
Автор: RomanDaemon
Дата сообщения: 03.12.2010 00:15
Подскажите пожалуйста.
Есть cxGrid, вехний level DBTableView.
Требуется, что бы часть полей показывалось не в верхнем уровне, а при нажатии плюсика.
Для связки master-detail через cxGrid так для других таблиц БД и сделано. Добавлено несколько дочерних levels.
А вот надо, что бы в таком же формате в отдельном табе показывались данные и из master таблицы.
Пробовал создвать новый level и dbview и к нему прицепить то же datasource, что и у верхней вьюхи. Если не задать у поля master, detail, key fields, то просто ничего не показывается. Если задать, то все отображается, но при попытке через эту вьюху запостить отредактированную запись - появляется ошибка "First chance exception at $7C812AEB. Exception class EOleException with message 'Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения'."
Подозреваю, что оно так работать и должно.
Но как тогда сделать, что бы часть полей открывалась по плюсику?
Автор: makz
Дата сообщения: 03.12.2010 06:10
RomanDaemon
А почему бы не создать просто еще один датасет?
Автор: RomanDaemon
Дата сообщения: 03.12.2010 09:25
makz
А хотелось уменьшить нагрузку. Да и синхронизация потребуется.
Автор: tanaseduard
Дата сообщения: 03.12.2010 11:33
Не могу понять за что отвечает в гриде
DataController.DataModeController.GridMode
и
DataController.DataModeController.SmartRefresh
?
Автор: alexander315435
Дата сообщения: 03.12.2010 11:42
В DevExpress я null, так что сорри если некорректно поставлю вопрос. Добавляю BarButtonItem -> RichTextEdit для отображения текстовой информации . Переодически перестает работать скролл, причем не работает именно, когда нажимаешь колесиком вниз. Скролл отображается не работает именно прокрутка колесиком вниз. При нажатии мышкой на стрелочки скролла все нормально. С чем может быть проблема и как настроить скроллинг для данного компонента, помимо свойств устанавливающих видимость скролла.
Автор: tanaseduard
Дата сообщения: 03.12.2010 11:51
alexander315435

Цитата:
BarButtonItem -> RichTextEdit

Это как?
Может BarEditItem?

Какая версия девок?
Автор: X11
Дата сообщения: 03.12.2010 11:57

Цитата:
Не могу понять за что отвечает в гриде
DataController.DataModeController.GridMode
и
DataController.DataModeController.SmartRefresh
?

На офсайте ест справка в свободном доступе
Автор: alexander315435
Дата сообщения: 03.12.2010 12:17

Цитата:
alexander315435

Цитата:
BarButtonItem -> RichTextEdit

Это как?
Может BarEditItem?

Какая версия девок?
Версия 2010 vol. 1. Да, BarEditItem ошибся.
Автор: tanaseduard
Дата сообщения: 03.12.2010 12:40
alexander315435
Насколько я понял то это под Visual Studio?
Протестировал на Delphi таких проблем не обнаружил.
Автор: frx_user
Дата сообщения: 03.12.2010 15:08
Здравстуйте!
У меня следующий вопрос.
Установил DevExpress 53 на Delphi 2009 и Builder 2009. Пришлось вручную откомпилировать и установить все через Delphi. В Delphi при этом все нормально работает. Однако когда я перехожу в Builder (где я и планирую все писать), то при загрузке подгружаются все пакеты, но на палитре (Tool Palette) ничего не добавлено.
Помогите пожалуйста разобраться! В Delphi относительный новичок, буду благодарен за подробную инструкцию если можно.
Автор: tanaseduard
Дата сообщения: 03.12.2010 17:07
frx_user
Тут ранее пробегал автоинсталерр. Вроде с ним проблем не наблюдалось.
Автор: AvGSoft
Дата сообщения: 04.12.2010 16:50
frx_user
А при компилировании в Delphi выбирал опцию Geterate All C++ files?

Добавлено:
tanaseduard
Автоинсталер от fendy, судя по рейтингу, frx_user'у не доступен, а от darkraptor'a у меня не поставился че-то с путями было, хотя может уже и поправил.
Автор: MedvedevDM
Дата сообщения: 05.12.2010 00:57
Доброй ночи!
А как русифицировать DevExpress?
Для Visual Studio 10.1.8

Автор: frx_user
Дата сообщения: 05.12.2010 01:30
Поставил Embarcadero Studio XE и на него DevExpress 1.52 - все заработало. Видимо с 2009й версией был какой-то косяк.
Спасибо за помощь!
Автор: SIgor33
Дата сообщения: 05.12.2010 08:24
MedvedevDM

Цитата:
А как русифицировать DevExpress?
Для Visual Studio 10.1.8

Здесь для delphi компоненты а если тебе интересно для net то посмотри
на официальном сайте локализацию через culture
ссылка http://www.devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=A421&searchtext=localization&pgid=ecb3be56-c75a-4166-aa68-cb462cd2dd2b
Автор: makz
Дата сообщения: 05.12.2010 17:41
Подскажите пожалуйста, как получить список SkinName-ов от cxLookAndFeelController? Хочу в меню выбор добавить.
Автор: tanaseduard
Дата сообщения: 05.12.2010 18:35
makz
Ниже копия моего класса для смены скинов.


Код: Unit lib_Dev_Skins;

Interface

Uses Forms,Variants,
dxBar,cxLookAndFeels,cxLookAndFeelPainters,dxSkinsForm,
dxSkinsCore,dxSkinBlack,dxSkinBlue,dxSkinCaramel,dxSkinCoffee,dxSkinDarkRoom,
dxSkinDarkSide,dxSkinFoggy,dxSkinGlassOceans,dxSkiniMaginary,dxSkinLilian,
dxSkinLiquidSky,dxSkinLondonLiquidSky,dxSkinMcSkin,dxSkinMoneyTwins,dxSkinOffice2007Black,
dxSkinOffice2007Blue,dxSkinOffice2007Green,dxSkinOffice2007Pink,dxSkinOffice2007Silver,
dxSkinPumpkin,dxSkinSeven,dxSkinSharp,dxSkinSilver,dxSkinSpringTime,dxSkinStardust,
dxSkinSummer2008,dxSkinsDefaultPainters,dxSkinValentine,dxSkinXmas2008Blue,
dxSkinsdxStatusBarPainter,dxSkinsdxBarPainter,cxGraphics,cxControls,dxSkinscxPCPainter,
cxPC;

Type
TSkinChangeNotify=Procedure(AUseSkin:Boolean;ASkinName:String) Of Object;

Type
TDevExpressSkins=Class
Constructor Create;
Destructor Destroy; Override;
Procedure CreateAllSkinButtons(ASubItem:TdxBarSubItem;AImIndexWithout,AImIndexWith:Integer);
Private
FUpdateNotify:TSkinChangeNotify;
FSkinController:TdxSkinController;
Procedure SkinButtonClick(Sender:TObject);
Public
Procedure SetSkin(ASkinName:String);
Property SkinChangeEvent:TSkinChangeNotify Write FUpdateNotify;
End;

Implementation

Constructor TDevExpressSkins.Create;
Begin
FSkinController:=TdxSkinController.Create(Application.MainForm);
End;

Destructor TDevExpressSkins.Destroy;
Begin
FSkinController.Destroy;
End;

Procedure TDevExpressSkins.CreateAllSkinButtons(ASubItem:TdxBarSubItem;AImIndexWithout,AImIndexWith:Integer);
Var
barBtn:TdxBarItemLink;
i:Integer;
Begin
Try
barBtn:=ASubItem.ItemLinks.Add;
barBtn.Item:=TdxBarButton.Create(ASubItem.BarManager);
barBtn.UserPaintStyle:=psCaptionGlyph;
TdxBarButton(barBtn.Item).OnClick:=SkinButtonClick;
TdxBarButton(barBtn.Item).ImageIndex:=AImIndexWithout;
TdxBarButton(barBtn.Item).Caption:='Без скина';
//Create Skin Button
For I:=0 To GetExtendedStylePainters.Count-1 Do
Begin
barBtn:=ASubItem.ItemLinks.Add;
barBtn.Item:=TdxBarButton.Create(ASubItem.BarManager);
barBtn.UserPaintStyle:=psCaptionGlyph;
TdxBarButton(barBtn.Item).OnClick:=SkinButtonClick;
TdxBarButton(barBtn.Item).ImageIndex:=AImIndexWith;
TdxBarButton(barBtn.Item).Caption:=GetExtendedStylePainters.Names[I];
If i=0 Then barBtn.BeginGroup:=True;
End;
Finally
End;
End;

Procedure TDevExpressSkins.SkinButtonClick(Sender:TObject);
Begin
Try
If TdxBarButton(Sender).Tag=-100 Then
Begin
FSkinController.SkinName:='';
FSkinController.UseSkins:=False;
If (Assigned(FUpdateNotify))And(@FUpdateNotify<>Nil) Then
FUpdateNotify(False,'');
End
Else
Begin
FSkinController.SkinName:=TdxBarButton(Sender).Caption;
FSkinController.UseSkins:=True;
If Assigned(FUpdateNotify)And(@FUpdateNotify<>Nil) Then
FUpdateNotify(True,FSkinController.SkinName);
End;
Finally
End;
End;

Procedure TDevExpressSkins.SetSkin(ASkinName:String);
Begin
FSkinController.SkinName:=ASkinName;
FSkinController.UseSkins:=True;
End;
End.

Автор: CommonJet
Дата сообщения: 05.12.2010 19:57
Добрый день! Такой вопрос:

Есть cxGrid один cxBandedTableView с тремя колонками. Данные заполняю вручную.
Сортирую данные по двум колонкам.

Вот теперь сам вопрос: как мне убрать сортировку, при этом сохранить порядок записей который был при этой сортировке.
Вводить для этого дополнительные колонки крайне не желательно.

Буду благодарен за любую помощь.
Автор: vladman
Дата сообщения: 05.12.2010 23:46
CommonJet

Цитата:
как мне убрать сортировку

Что вы имеете ввиду под "убрать сортировку не меняя порядок записей"? Убрать визуальное отображение сортировки или что-то еще?
Автор: CommonJet
Дата сообщения: 06.12.2010 00:17
vladman
Может быть я не совсем точно выразился.
Вот посмотрите на картинку.



На 1-ой - то, что я получаю изначально из плейлиста и загоняю данные в cxGrid.
На 2-й данные отсортированы, ну допустим, по второй и последней колонкам.
Так вот, мне нужно не просто визуально убрать "треугольнички" сортировок, мне надо что-то наподобие cxGrid.DataController.ClearSorting, но только что-бы записи сохранили свой порядок в таблице (3)

Пробовал так, но получаю порядок записей, как на 1-й картинке. Но оно и понятно, в принципе.

Код:
AMemory := TMemoryStream.Create;
try
grdChannelsBandedTableView1.DataController.SaveToStream(AMemory);
for i := 0 to grdChannelsBandedTableView1.Bands[0].ColumnCount - 1 do
grdChannelsBandedTableView1.Bands[0].Columns[i].SortOrder := soNone;
AMemory.Seek(0, soFromBeginning);
grdChannelsBandedTableView1.DataController.LoadFromStream(AMemory);
finally
FreeAndNil(AMemory);
end;
Автор: dimm78
Дата сообщения: 06.12.2010 00:24

Цитата:
На 1-ой - то, что я получаю изначально из плейлиста и загоняю данные в cxGrid.
На 2-й данные отсортированы, ну допустим, по второй и последней колонкам.
Так вот, мне нужно не просто визуально убрать "треугольнички" сортировок, мне надо что-то наподобие cxGrid.DataController.ClearSorting, но только что-бы записи сохранили свой порядок в таблице (3)


а почему бы в таком случае не заполнять вьюху в уже нужном порядке а сортировку просто отключить?
Автор: CommonJet
Дата сообщения: 06.12.2010 00:28
Исключено. Как там пользователь захочет отсортировать - я знать не могу.
Плюс лишать его такой возможности нельзя. И плейлисты будут меняться постоянно.
В общем, это очень грубое решение.
Автор: vladman
Дата сообщения: 06.12.2010 01:26
CommonJet

Цитата:
Подскажите, в каком направлении двигаться.

Все же не совсем понятна причина по которой вам нужен такой функционал, но в качестве решения могу предложить использовать DBBandedDBTableView и dxMemData в качестве источника данных. Если необходимую сортировку выполнять в dxMemData, то данные будут визуализироваться в нужном порядке в то время как все айтемы в DBBandedDBTableView будут с SortOrder = soNone, если именно это вам нужно.
Автор: CommonJet
Дата сообщения: 06.12.2010 01:37
vladman
Если очень вкратце, то мне необходимо это делать перед обработкой DragDrop.
Т.е. отменить сортировку, при этом сохранить текущий порядок записей.
Всю идею программы описывать будет долго, но искомая процедура ну очень бы облегчила мне жизнь.
Буду думать.
Автор: makz
Дата сообщения: 06.12.2010 04:09
tanaseduard
Cпасибо! за GetExtendedStylePainters.
Автор: vladman
Дата сообщения: 06.12.2010 10:29
CommonJet

Цитата:
Если очень вкратце, то мне необходимо это делать перед обработкой DragDrop.

Допустим для DragDrop'а. Но как Columns.SortOrder на это может оказывать влияние? Это я к тому уточняю, что возможно, для решения вашей проблемы существует другой подход - нужно только четко понимать проблему.
Автор: neznayka3
Дата сообщения: 06.12.2010 11:54
как выделить другим шрифтом слова в выпадающим списке cxLoockupComboBox, которые совпадают со значением в cxLoockupComboBox.EditValue?
Автор: tanaseduard
Дата сообщения: 06.12.2010 12:45
neznayka3
Может лучше попробовать это сделать через ExtLookupComboBox?
Автор: X11
Дата сообщения: 06.12.2010 22:37
Кто имел дело с TcxPropertiesStore, подскажите, как сохранить восстановить значения чекбоксов у компоненты TcxCheckCombobox.
Вот мой код

Код: with TcxPropertiesStoreComponent(cxPropertiesStore1.Components.Add) do
begin
Component := chcomboboxBaseFilterBySuperType;
Properties.Add('States');
end;//with

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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