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

» Использование DevExpress

Автор: Alex1978
Дата сообщения: 27.10.2005 10:40
Можно ли программно добавить для группировки колонку в гриде?
Автор: Darl
Дата сообщения: 27.10.2005 11:59

Цитата:
Можно ли программно добавить для группировки колонку в гриде?


TcxGridColumn *AColumn;
TcxGridTableSummaryItem *summaryItem;
TcxDataSummary *summary = cxView->DataController->Summary;

try
{
summary->BeginUpdate();
AColumn = cxView->CreateColumn();
AColumn->DataBinding->ValueTypeClass = __classid(TcxStringValueType);
summaryItem = (TcxGridTableSummaryItem *)summary->DefaultGroupSummaryItems->Add();
summaryItem->Column = AColumn;
summaryItem->Kind = skSum;
}
__finally
{
summary->EndUpdate();
}
Автор: TooLogic
Дата сообщения: 27.10.2005 17:40
Не компилируется пакет Scheduler 2 (ver 2.0.0) под D7.

Ругается на override метода кот. нет в базовом классе и много чего еще...

Кто как выходил из этого?

-----------
Спасибо за молчание - справился установкой Sсheduler Suite 2 с фиксдауна
Автор: Andrey Sv
Дата сообщения: 30.10.2005 17:58
Я недавно нашел компоненты DevExpress, но без примеров и без какой-либо документации, но кое-как разобрался немного. Долго искал свойства cells, rowcount и другие как у обычного StringGrid

Прошу помочь вот с такой проблемой. В runtime не работают custom filter. Все время пишется Invalid value. Тип колонки - float и integer. Например я хочу вывести все строки где значение в ячейке >5. Из всех фильтров работают только "is blank" и "is not blank". При запуске проги из под Delphi пишется "Invalid variant type conversion".

И еще просьба, можно где-то найти отдельный help по cxGrid ?
Автор: Alex47
Дата сообщения: 31.10.2005 08:07
Andrey Sv

Цитата:
Я недавно нашел компоненты DevExpress, но без примеров и без какой-либо документации, но кое-как разобрался немного.

Желательно использовать последнюю версию - 5.10. В нее входят и Demo и Help.
Автор: KPH
Дата сообщения: 31.10.2005 13:38
Подскажите пожалуста кто уже через это реально прошел: как корректно русифицировать DevExpress под .NET. Я скачал со стренички http://devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=421 архив с локализированными версиями.
Добавил в GAC файлы из этого архива:
DevExpress.XtraBars3.Resources.Dll
DevExpress.XtraEditors3.Resources.Dll
DevExpress.XtraGrid3.Resources.Dll
DevExpress.XtraPrinting3.Resources.Dll
DevExpress.XtraVerticalGrid3.Resources.Dll
После этого, открываю приложение, в котором используется грид - контекстное меню его столбцов русифицировалось почти полностью. Однако элементы XtraEditors не русифицировались.
Спасибо.
Автор: VoodooSV
Дата сообщения: 02.11.2005 11:47
Хочу на форме вместо кучи отдельных DBEdit'ов и DBLookupComboBox'ов использовать DBVerticalGrid с настроенными EditProperties'ами.

Создан DBVerticalGrid,. в одной из строк которого в EditProperties = LookupComboBox.
Для LookupComboBox настроены ListSource, KeyFieldNames и ListFieldNames.

Вопрос: при использовании отдельного DBLookupComboBox'а для получения значения KeyField достаточно cxDBLookupComboBox.EditValue.
При использовании же LookupComboBox'а в DBVerticalGrid'е, я никак не могу получить значения ID записи, которую выбираю в LookupComboBox'е.

Кто-нибудь может подсказать как к нему достучаться?

Буду очень признателен.
С уважением,
Сергей.
Автор: ejikt
Дата сообщения: 02.11.2005 14:40
Доброго времени суток!

Не сталкивался ли кто-нибудь с такой проблемой: при создании в runtime'е DockPanel и задочивания (dtClient) его на другой DockPanel, на последнем остаётся картинка того, что было на вновь созданном и перерисовать никак не получается. Но если вытащить один из другого и поместить обратно, всё встаёт на свои места. Как обойти этот глюк?

Заранее спасибо!
Автор: Alex47
Дата сообщения: 02.11.2005 15:07
VoodooSV
Для обычного cxgrid советовали выставлять
cxLookupColumn.Properties.Grid.DataController.DataModeController.SyncMode := True;
Здесь cxLookupColumn - нужная колонка.
Помнится, мне это не помогло, потому стал использовать Locate
в cxLookupColumn.onEditValueChanged
Автор: ejikt
Дата сообщения: 02.11.2005 15:17
Ларчик просто открывался, извините за беспокойство.

Добавлено:
Если сначала создать панель, её задочить, а потом менять её свойства, то глюк проявляется, а вот если наоборот, всё сделать, а потом задочить - всё ок!
Автор: VoodooSV
Дата сообщения: 02.11.2005 16:26
Alex47
Спасибо за ответ, но интересует работа именно с VerticalGrid
Автор: Alex1978
Дата сообщения: 03.11.2005 07:11
Кто-нибудь решал (и решил ли) вопрос с сортировкой в гриде если язык отличен от русского (украинский и т.д.)?
Автор: Alex47
Дата сообщения: 03.11.2005 08:04
VoodooSV

1. Key Value это
TcxDBLookUpComboBox(sender).EditValue
в EditValueChanged event
2. Displayed value это TcxDBLookUpComboBox(sender).Text
Автор: VoodooSV
Дата сообщения: 03.11.2005 09:01
Alex47
Огромное спасибо, всё заработало, а я то уже было начал думать о возврате к использованию кучи Edit'ов
Еще раз спасибо!!!
Автор: vcrank
Дата сообщения: 04.11.2005 07:27
А как исходники правильно скомпилировать? DevExpress.ExpressQuantumGrid.Suite.v5.10
Автор: VoodooSV
Дата сообщения: 04.11.2005 08:26
vcrank
Если ты имеешь ввиду порядок компиляции, то я делаю так (для ExpressQuantumGrid, ExpressQuantumTreeList, ExpressVerticalGrid, ExpressBar, если ты ставишь только QG, остальное пропусти):
CommonLibrary
XP Theme Manager
ExpressCommon Library
ExpressExport Library
ExpressDataConroller
ExpressEditors Library 5
ExpressPageControl 2
ExpressVerticalGrid
ExpressQuantumTreeList 4
ExpressBars 5
ExpressQuantumGrid 5

А вот, что пишут на DevExpress в Knowledge Base Article:
How to rebuild the ExpressQuantumGrid packages manually

ArticleID: 1273; Product: ExpressQuantumGrid; Version(s): 5; Technology: VCL; Updated: 7/9/2004

Description

I have changed the source code of the ExpressQuantumGrid and wish to recompile the packages. How can I do this?

Solution

If you decide to rebuild the ExpressQuantumGrid packages, please recompile them in the following order:

XP Theme manager:

dxThemeD{C}X.dpk

CX Library:

cxLibraryVCLD{C}X.dpk
dclcxLibraryVCLD{C}X.dpk

ExpressDataController:

cxDataD{C}X.dpk
cxBDEAdaptersD{C}X.dpk
cxADOAdaptersD{C}X.dpk
cxIBXAdaptersD{C}X.dpk

ExpressEditors Library:

cxEditorsVCLD{C}X.dpk
cxExtEditorsVCLD{C}X.dpk
dclcxEditorsVCLD{C}X.dpk
dclcxExtEditorsVCLD{C}X.dpk

ExpressQuantumGrid

cxExportVCLD{C}X.dpk
cxGridVCLD{C}X.dpk
dclcxGridVCLD{C}X.dpk

Please note that all packages whose name begin with the 'dcl' prefix are design-time packages and they should be installed in the IDE. All other packages are runtuime packages and they are usually stored in the Windows system folder (WinNT/System32).

Note that our products are interdependent and require each other. For example, the dclcxEditorsVCLD7.bpl library is a design-time package of the ExpressEditors Library. It refers to the corresponding runtime package cxEditorsVCLD7, which in turn, refers to the cxDataD7. If you change any unit which is a part of the cxDataD7 package and rebuild this library, Delphi tries to load the ExpressEditors Library package and that fails because the package it requires (cxDataD7) has been changed.

To get rid of such problems, I recommend that you follow these steps:

1. Remove all DX packages from the Delphi list of design time packages (Component \ Install Packages \ Packages).
2. Copy all source files and packages to a separate folder.
3. Compile the necessary packages.
4. Compile ALL the dependent packages.
5. Replace the existing DX library files on your disk with the newly compiled files.
6. Start Delphi.
7. Install the necessary design-time packages (Component \ Install Packages \ Packages).
Автор: vcrank
Дата сообщения: 04.11.2005 17:01
Это я прочитал. У меня папки CX Library нет.
Попробую. Спасибо
Автор: Alex1978
Дата сообщения: 05.11.2005 09:06
Можно ли как-то в гриде создать для колонки редактор - выподающий список, который уже составлен если колонка поддерживает фильтрацию, средствами самого грида?
Автор: HarryW
Дата сообщения: 05.11.2005 13:24
Суть проблемы в следующем: есть на форме VGrid:TcxVerticalGrid с полем
Row: TcxEditorRow;
Устанавливаю Row.Properties.EditProperties = CheckComboBox
программно добавляем items, и теперь хотелось бы воспользоваться методами SetItemState и GetItemState класса TcxCustomCheckComboBox, но не могу понять как достучаться до этого поля, как до CheckComboBox'a.
По идее должно быть что-то похожее на
TcxCustomCheckComboBox(????).SetItemState(i, cbsChecked);
Автор: Alex47
Дата сообщения: 05.11.2005 13:26
Alex1978
Если речь идет о том, чтобы зафильтровать выпадающий список LookupComboBox
по значению поля в другой колонке, то можно примерно такой код повесить на событие колонки OnInitPopup:
- <Column>.Properties.OnInitPopup:
var AItemlink: TObject; AValue: Variant;
begin
AValue:= View.Controller.FocusedRecord.Values[<OtherField>.Index];
with TcxLookupComboBox(Sender).Properties.Grid do begin
AItemLink:=Columns.ColumnByFieldName('OtherFieldname');
with DataController.Filter do begin
Clear;
root.AddItem(AItemLink, foEqual, AValue,'');
Active := True;
end;
end;
Предварительно надо добавить <other field> как колонку к lookupcombo
Автор: Alex1978
Дата сообщения: 06.11.2005 08:23
Alex47
Нет. Я имел в виду что нужно иметь выпадающий список в редакторе содержащий все уникальные значения именно для этого столбца.
Автор: YuraseK
Дата сообщения: 06.11.2005 11:51
To All
Кого-либо интересует возможность использования следующего вида подсказок для ExpressBars 5:



Для своих нужд был создан компонент на основе FlatHint из пакета FlatStyle с небольшой доработкой и исправлением багов, так что могу поделиться.
Автор: Alex47
Дата сообщения: 06.11.2005 12:22
Alex1978
А почему LookupComboBox не годится?
Автор: YuraseK
Дата сообщения: 06.11.2005 13:21
У меня ворос по ExpressBars: как в событии OnClick, допустип кнопки TdxBarLargeButton, определить её DockControl, а то я совсем запутался.
Автор: xokc
Дата сообщения: 07.11.2005 21:31
HarryW


Цитата:
Устанавливаю Row.Properties.EditProperties = CheckComboBox
программно добавляем items, и теперь хотелось бы воспользоваться методами SetItemState и GetItemState класса TcxCustomCheckComboBox, но не могу понять как достучаться до этого поля, как до CheckComboBox'a.
По идее должно быть что-то похожее на
TcxCustomCheckComboBox(????).SetItemState(i, cbsChecked);


Не ручаюсь именно за SetItemState, но похожая вещь работает:

Row.Properties.EditPropertiesClass := TcxCheckComboBoxProperties;
with Row.Properties.EditProperties as TcxCheckComboBoxProperties do
begin
for i := 0 to FItems.Count-1 do Items.AddCheckItem(FItems[i]);
end;

Автор: mln141
Дата сообщения: 08.11.2005 08:52
Добрый день всем!
Хочу иметь возможность в DevExp Gridе (для BCB ) копировать и вставлять данные одновремменно в несколько ячеек. Поставил стандартные действия (ActionList), но они позволяют работать только с одной ячейкой за раз. А хотелось бы как в Экселе выделять сразу область.
Второй вопрос из этой темы - как скопировать и вставить целую запись.
И наконец если копировать из Экселя ячейку, то результат нулевой - надо копировать ее содержимой (из строки формул) - это явно не правильно.
Автор: VoodooSV
Дата сообщения: 08.11.2005 10:04
mln141
В QuantumGrid можно копировать содержимое нескольких строк/ячеек. В TableView.OptionsSelection выставляешь CellMultiSelect и MultiSelect в True, и копируй в буфер все, что душе угодно даже с названием столбцов (OptionsBehavior.CopyCaptionsToClipboard=True).
По поводу вставки, это, наверное. проблемаично, да и не Excel же это , это просто лучшие компоненты 2004 года.
Автор: mln141
Дата сообщения: 08.11.2005 14:23
VoodooSV
Вопрос несколько в другом. Выбрать-то я выбрал, а вот скопировалось ли это в Clipboard? Если нет, то как это делать. Писать что-то типа CopyToClipboard не хочется, так как тогда надо будет по полной писать функционал для комманды меню (а на форме есть и другие елементы с которыми стд Action нормально управляется).
Может кто-нибудь сталкивался с компонентами, совместимыми с DevExpress, которые решают эту проблему.
Автор: VoodooSV
Дата сообщения: 08.11.2005 14:39
mln141
Для копирования проделываешь стандартную операцию: Ctrl+C либо CopySelectedToClipboard / CopyAllToClipboard
Автор: HarryW
Дата сообщения: 09.11.2005 09:41
2xokc:

Спасибо, я решил этот вопрос несколько иным способом. Событие onInitPopup в качестве сендера имеет как раз класс TcxCheckComboBox.Присваиваю его переменной и далее использую где надо.

checkCombo : TcxCheckComboBox;
...
procedure TForm1.RowEditPropertiesInitPopup(Sender: TObject);
begin
checkCombo:=TcxCheckComboBox(Sender);
end;
...
checkCombo.GetItemState(i)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Kylix


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