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

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

Автор: Alex47
Дата сообщения: 04.08.2006 10:05
Tade
Я, правда для обычного lookup, использую setrange для lookup таблицы в обработчике View OnInitEdit. Приблизительно так:

procedure Proj.cxGrid1DBTableView1InitEdit(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit);
begin
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.HasNewItemRecord then
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.NewItemRow.Focused then
if AItem.Caption = 'Цвет' then
begin
with kbmMemLookupTable do
begin
DisableControls;
SetRangeStart;
//KeyFieldCount := 1;
FieldByName('GoodsId').AsInteger := GoodsId;
SetRangeEnd;
//KeyFieldCount := 1;
FieldByName('GoodsId').AsInteger := GoodsId;
ApplyRange;
EnableControls;
end;
end;
Автор: Kapacuk
Дата сообщения: 04.08.2006 10:40
Всем добрый день!
Такой вопрос: в колонке DBTableView едитор установлен в BlobEdit. При этом в раскрытом состоянии оный BlobEdit содержит 2 кнопки - "ОК" и "Cancel". Есть ли способ сменить заголовки? Скажем, "Cancel" на "Отмена"?
Спасибо.
Автор: Tade
Дата сообщения: 04.08.2006 11:36
Alex47
Спасибо за помощь, но не все понял.
Повидимому вы используете в качестве lookup таблицы memtable
и на момент внесения новой записи фильтруете эту таблицу встроенным фильтром.
тогда зачем изменять в этой таблице ключевое поле FieldByName('GoodsId') ?
и не переводя DataSet в Edit перед этим?
проверить такой вариант я быстро не смогу, надо переделать под FIBDataSet,
который у меня используется в качестве Lookup таблицы.
Но, если получится, то это замечательно.
Тогда возникает следующий вопрос - а если это не новая запись?
т.е. какой смысл делать проверку
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.HasNewItemRecord then
?
Автор: Dennica
Дата сообщения: 04.08.2006 11:52
vadson6666

Цитата:
чтобы форматирование отображалось всегда, необходимо выставить свойство AlwaysShowBlanks

Вот! Это-то мне и нужно было, просмотрел я эту пропертю. Спасибо!
Автор: Virto
Дата сообщения: 04.08.2006 12:51
Люди, подскажите пож-ста такой вопрос...
Вот , на старости лет решил попробовать написать компонент... C++ Builder 6...
Что-то нацарапал, создал Package... Пытаюсь установить, говорит, что Package succesfully installed, но компонента нет! И не было сообщения, что он добавлен на палитру...
void __fastcall PACKAGE Register() присутствует...
В чем может быть проблема?
Автор: avkh
Дата сообщения: 04.08.2006 13:10

Цитата:

Цитата: Цитата:А как правильно программно установить время в cxTimeEdit?


Например, так:
cxTimeEdit1.Time := now;
cxTimeEdit1.EditValue := StrToTime('01:34:45');
Автор: vadson6666
Дата сообщения: 04.08.2006 13:39

Цитата:
void __fastcall PACKAGE Register() присутствует...
В чем может быть проблема?


При чем здесь ДевЭкспресс? Может быть лучше начать со страницы http://forum.ru-board.com/topic.cgi?forum=33&topic=5662#1 ??


Цитата:
Них не получается - в самих edit'ах остается '00:00:00'


Пример кода приведите. Можно в ПМ

Автор: Kapacuk
Дата сообщения: 04.08.2006 13:39
> Них не получается - в самих edit'ах остается '00:00:00'
Проверил, работает
Автор: Virto
Дата сообщения: 04.08.2006 13:44
При чем здесь ДевЭкспресс? Может быть лучше начать со страницы http://forum.ru-board.com/topic.cgi?forum=33&topic=5662#1 ??

??? С девекспресс другая проблема...
тот был вопрос по созданию своего компонента!
Автор: Alex47
Дата сообщения: 04.08.2006 15:44
Tade
Извини, подробнее сейчас не могу.
В качестве lookup таблицы, конкретно здесь, memtable, но может быть любая другая, по которой можно выставить setrange. Ключевое поле FieldByName('GoodsId') я не меняю - я выставляю фильтир (setrange), т.е. будут видны только те записи у которых
FieldByName('GoodsId').AsInteger := GoodsId;
Теперь можно немного подробнее. В lookup таблице содержатся названия цветов для разных товаров (GoodsId). После setrange по конкретному товару (GoodsId) в lookup будут видны цвета только этого товара. Setrange для фильтрации использовался потому, что он дает максимальную скорость.
Строки
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.HasNewItemRecord then
if TcxGridDBTableView(cxGrid1.FocusedView).ViewData.NewItemRow.Focused then
можно убрать, у меня они нужны, поскольку lookup открывается только в NewItemRow.
Автор: jicoff
Дата сообщения: 04.08.2006 15:50
Virto

Так о том и идет речь, что здесь рассматривают вопросы непосредственно связанные с DevExpress.

Офтоп

А что касается регистрации компонента, то функцию Register() нужно вставить в namespace с именем модуля, где описана функция, написанным с заглавной буквы:

namespace Test // если в модуле Test.cpp
{
void __fastcall PACKAGE Register()
{
...
}
}
Автор: avkh
Дата сообщения: 04.08.2006 16:15

Код: procedure TfSupportGraph.aNewExecute(Sender: TObject);
begin
teID.EditValue:='New';
teCode.EditValue:='';
teName.EditValue:='';
tmWB.Time:=Now();
tmWE.EditValue:=StrToTime('19:00:00');
mDescription.Clear;
end;
Автор: Virto
Дата сообщения: 04.08.2006 16:28
to jicoff :
Спасибо, проблема была именно в имени namespace...
Не было раньше опыта в написании компонент... не думал, что это так существенно!
Спасибо за помощь!
Автор: Kapacuk
Дата сообщения: 06.08.2006 00:42
Прошу прощения, если уже было. Вопрос: Properties колонки таблицы установлено в PopupEdit. Как можно его (PopupEdit) программно развернуть или, наоборот, свернуть? Спасибо.
Автор: ChSerg
Дата сообщения: 06.08.2006 11:18
Привет всем.
Подскажите, можно ли как-нибудь в качестве редактора колонки в квантум гриде ипользовать древовидную структуру (как lookup-элемент)?
Просмотрел весь список допустимых редакторов - ничего не подходит...
Автор: afiget
Дата сообщения: 06.08.2006 13:23
Kapacuk

Цитата:
Properties колонки таблицы установлено в PopupEdit. Как можно его (PopupEdit) программно развернуть или, наоборот, свернуть

DropDown, DroppedDown
Автор: Kapacuk
Дата сообщения: 06.08.2006 13:35
afiget, а как подступиться к самому PopUp'у? В мануалах откопал только TcxPopupEditProperties - Contains settings specific to the editors
Автор: hobest
Дата сообщения: 06.08.2006 19:37
Kapacuk

(<ГридВъюКолумн>.Properties as TcxPopupEditProperties).PopupControl.Show;
Автор: vadson6666
Дата сообщения: 07.08.2006 07:33
avkh

Цитата:
Текст в teID нормально меняется,
tmWB, tmWE - нет, остается '00:00:00'



Хороший пример кода, только вот он ничего не говорит о том, что происходит дальше в проге и откуда вызывается. Начни новый пустой проект, кинь компоненцу, на ФормКриейт вкрути этот код и смотри, что произойдет, если и там не пашет, ну тогда может проще перебить инсталляху, чем голову ломать? ИМХО
Автор: Kapacuk
Дата сообщения: 07.08.2006 07:49

Цитата:
Kapacuk
(<ГридВъюКолумн>.Properties as TcxPopupEditProperties).PopupControl.Show;

В PopupControl лежит ссылка на контрол, отображаемый в попапе. Соответственно, метод Show будет применен к этому контролу, а не к выпадающему списку. Иными словами, попап не раскинется, но отобразится скрытая панель, лежащая в попапе (которая у меня вообще находится в другом модуле)

Автор: avkh
Дата сообщения: 07.08.2006 08:46

Цитата:
он ничего не говорит о том, что происходит дальше в проге и откуда вызывается. Начни новый пустой проект, кинь компоненцу, на ФормКриейт вкрути этот код и смотри, что произойдет, если и там не пашет, ну тогда может проще перебить инсталляху, чем голову ломать? ИМХО

Так все и сделано, в общем.
Я ходил по шагам - между вызовом акции и показом формы больше ничего с этими компонентами не выполняется.
Иэх, попробую переставить.
Автор: jicoff
Дата сообщения: 07.08.2006 12:16
Kapacuk

В таком случае нужно поставить фокус в нужную ячейку и активизировать редактор.
Автор: afiget
Дата сообщения: 07.08.2006 21:27
Kapacuk
Может быть в эту сторону копнуть:
https://devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=A205&searchtext=inplace&pgid=48409584-e723-41af-b1d3-52dd97577823&pid=8b369e9e-f81b-4a73-822e-37c84ccafcf7

Добавлено:
Kapacuk
Или вот так:
TcxComboBox(ИмяКолонкиВГриде.Properties).DroppedDown:=True;
Автор: hobest
Дата сообщения: 07.08.2006 23:41
afiget


Цитата:
TcxComboBox(ИмяКолонкиВГриде.Properties).DroppedDown:=True;


Это просто фигня какая-то. Думаю получишь акксесс виолетион . Во-первых, речь шла о TcxPopupEditProperties. Во-вторых, GridColumn.Properties никакого отношения к TcxCustomEdit и всем его потомкам не имеет. Это суть разные вещи. Редактор создается в тот момент, когда ячейка получает фокус и этот редактор инициализируется свойствами из Properties.
Автор: afiget
Дата сообщения: 08.08.2006 12:07

Цитата:
Думаю получишь акксесс виолетион

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

Цитата:
Во-первых, речь шла о TcxPopupEditProperties. Во-вторых, GridColumn.Properties никакого отношения к TcxCustomEdit и всем его потомкам не имеет. Это суть разные вещи

Значит, люди, которые пишут FAQ на DevExpress - пишут чушь. Можешь так им и написать
Автор: jicoff
Дата сообщения: 08.08.2006 12:50
afiget

У класса TcxComboBox действительно есть свойство DroppedDown, но редакторы не наследуют от TcxCustomEditProperties.

Не знаю кто пишет FAQ, но думаю, ты что-то перепутал. А компилятору все равно, главное чтобы синтаксической ошибки не было, и думать за программиста он не может.
Автор: Ravend
Дата сообщения: 08.08.2006 16:14
Привет, All!
требуется двум текстовым полям задать высоту в 2 строки и при этом разместить одно под другим

немогу совместить эти два требования, либо оба поля многостроковые но они лежат в один ряд либо друг под другом, но тогда многостроковым только одно (нижнее) поле

у TdxDBGrid стандартные настройки, изменил только:
HeaderPanelRowCount = 4 (в самом гриде)
HeaderMaxLineCount = 2 (это у TdxDBGridColumn лежащем в гриде)
RowIndex у одного TdxDBGridColumn равен 0 у другого 1

подскажите как можно добиться желаемого эффекта
спасибо

P.S.
юзаю под D5 (ExpressQuantumGrid 3.2)
Автор: afiget
Дата сообщения: 08.08.2006 20:57
jicoff
Цитата:
У класса TcxComboBox действительно есть свойство DroppedDown, но редакторы не наследуют от TcxCustomEditProperties

Именно поэтому и пишшем приведени к типу, который это свойство понимает.

Цитата:
Не знаю кто пишет FAQ, но думаю, ты что-то перепутал.

Вот аналог из FAQ:
https://devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=A1097&searchtext=&pgid=48409584-e723-41af-b1d3-52dd97577823&pid=8b369e9e-f81b-4a73-822e-37c84ccafcf7

Kapacuk
Что-то ты пропал. Ты хоть что-то из предложенного пробовал?

ЗЫ
Вот еще мысль, которая сработает точно, потому как все ручками, ручками
Я такое делал когда еще инплэйс-редакторов в помине не было.
Самому привязывать контрол (а с ним ты можешь делать все что он позволяет) и отлавливать событие редактирвоания ячейки.
Вот пример:
https://devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=A211&searchtext=&pgid=48409584-e723-41af-b1d3-52dd97577823&pid=8b369e9e-f81b-4a73-822e-37c84ccafcf7
Автор: john_rico
Дата сообщения: 09.08.2006 16:34
доброго времени суток,
не подскажет кто-то как в cxDateNavigator отрисовывать разным цветом фон под датами,
демку смотрел похожего не нашел
Автор: VAbramyak
Дата сообщения: 09.08.2006 16:49
Всем привет! Делема, есть на форме грид настроенный раскрашеный короче сил вложил немало. Но вот прикол не хочет первую запись редактировать. Кидаю на форму другой грид и подключаю тот же датасет. Все нормально работает! Может кто знает в чем проблема? Спасибо!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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