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

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

Автор: vladman
Дата сообщения: 07.09.2010 21:05
Ikra_v_shokolade
В данном случае вы не ошибаетесь и TcxShellComboBox и cxShellBrowserDialog (можно и с буквой Т, если хотите) это компоненты для Delphi и C++Builder и значение это имеет.

По поводу VS ничего вам сказать и, тем более, подсказать не могу, так как не пользую сей продукт.

В Delphi, по соглашению, с буквы Т (от Type) начинаются все имена классов и типов. Поэтому название компонент обычно приводят без T, а тип, которому принадлежит данный компонент с буквой Т.
Автор: Mzman
Дата сообщения: 08.09.2010 06:27

Цитата:
а вы пробовали по фокус. координатам??
Версия Девок???
у меня х43 кажется, но прикол под билдером возможен

По фокусированным координатам пробовал.CellsAsText вообще ни под каким видом не работает(выдает ошибку).Версия девок 40.Может и вправду дело в билдере,попробую установит более новую версию.
Автор: X11
Дата сообщения: 08.09.2010 08:58
Кто-нибудь пробовал запускать свои программы с использованием DevExpress на Win 98? До версии 52 программа работала, после установки 52ой версии при открытии любой формы программа подвисает.
Автор: Czechoslovak
Дата сообщения: 08.09.2010 14:52
Mzman


Цитата:
По фокусированным координатам пробовал.CellsAsText вообще ни под каким видом не работает(выдает ошибку).Версия девок 40.Может и вправду дело в билдере,попробую установит более новую версию


Фокусировка ни какой роли не играет... координаты X,Y всего лишь координаты ячеек,
просто в цикле перебирай нужный диапазон... под D7 v52 все нормально работает
Автор: Mzman
Дата сообщения: 08.09.2010 15:23
Czechoslovak
Вот такой код у меня не работает
Edit1->Text=cxDBPivotGrid1->ViewData->CellsAsText[2,2];

Поставлю Builder поновее и проверю.Хотя может и DevExpress 40 глючный(а другого у меня нет).
Автор: Czechoslovak
Дата сообщения: 09.09.2010 13:11
Mzman


Цитата:
Вот такой код у меня не работает
Edit1->Text=cxDBPivotGrid1->ViewData->CellsAsText[2,2];

все работает, естественно если есть такая ячейка

DevExpress v52 http://forum.ru-board.com/topic.cgi?forum=35&topic=47325&start=200#6
Автор: Ikra_v_shokolade
Дата сообщения: 09.09.2010 18:40

Цитата:
Скажите, пожалуйста, есть в DevExpress что-то вроде FolderBrowserDialog в VS? То есть диалог выбора папки.

Заранее благодарю за ответ!


Вопрос все еще в силе. Возможно кто-то может точно сказать - под Visual Studio есть такой компонент - да или нет? Или зря я бьюсь в поисках?
Автор: volser
Дата сообщения: 09.09.2010 19:31
Ikra_v_shokolade
Ссылка
Автор: Andryshok
Дата сообщения: 10.09.2010 10:55
Братцы, подскажите как сделать подобную связку в cxDBTreeList , бился бился не могу сам додуть, вот скрин там моя таблица и пример из DevExpress


Добавлено:
Либо как привязь dxDBTreeView к cxGrid для достижения подобного эффекта, дерево слева - таблица с права при выборе категорий в дереве соответствующий выбор и фильтр категорий в гриде

куда какие свойства выставлять- не знаю
Автор: Dargius
Дата сообщения: 10.09.2010 11:07
Добрый день.

Сначала взгляните на скриншот ( http://keep4u.ru/full/52f6193386a52e33e819705197563861.html ). Теперь проблема. Есть БандетГрид. В котором в середине 1 банд на 2 поля (видимых). К банду привязанно попап меню. В клике по меню нужно получить банд по которому кликнули. Т.е. например ткнули по "Чт 3" вылезло попап. В нем ткнули на меню. Меню показало что кликнули по "Чт 3" а не по другой колонке.

Пробовал по разному. Пробовал через контролер получат текущую колонку а из нее банд. Работает только если ткнуть перед этим по данным в колонке. Просто тыкать правой кнопкой по бандам не получится. На текущий момент вижу только один вариант. У банда есть событие ОнКлик, с помощью него можно получить через Сендер банд пордивший событие, но решение не красивое, ибо это левый клик а не правый, и прийдется либо рисовать окно либо самостоятельно попапать меню.

Подскажите, может кто-то делал такое, или знает как сделать. Как получить текущий банд под мышкой. Заранее спасибо.

Автор: Oizo
Дата сообщения: 10.09.2010 11:37
На Ribbon имеется компонент TcxBarEditItem, рядом кнопка (типа "Присвоить"). По нажатию кнопки происходит обработка введенного в TcxBarEditItem значения. Вопрос: ввод значения в TcxBarEditItem происходит только после нажатия Enter, можно ли обойти это (т.е. ввести необходимое значение и сразу кликать кнопку?)

Добавлено:
Разобрался: в BarManager.AlwaysSaveText:=TRUE
Автор: SIgor33
Дата сообщения: 10.09.2010 20:09
Возник вопрос при использовании cxDBTreeList в свойствах выставляю CheckGroups=true
После этого в принципе должны отображаться checkbox в котором я могу lделать свой выбор но это не происходит но в принципе не важно можно сделать так
cxDBTreeList.Root.CheckGroupType:=TcxTreeListNodeCheckGroupType(1) и она появиться но только у верхнего уровня а хотелось бы чтобы у всех. конечно можно пробежаться по всему листу с верху в низ и выставить. А существует ли команда которая сразу всем NODE(ам) отобразить checkgroup. Помогите советом
Автор: Mzman
Дата сообщения: 13.09.2010 13:26
sldaac,Czechoslovak

нужно было делать так...
Edit1->Text=cxDBPivotGrid1->ViewData->CellsAsText[2][2];
и все заработало.
В любом случае спасибо за помощь.
Автор: sldaac
Дата сообщения: 13.09.2010 14:06
Mzman

Цитата:
нужно было делать так...
Edit1->Text=cxDBPivotGrid1->ViewData->CellsAsText[2][2];


странно, я привел рабочий код.
Скорее всего в вашей версии х40 могло так быть, но код я приводил с рабочего проекта. Правда Делфи не билдер
Автор: Mzman
Дата сообщения: 13.09.2010 15:15
sldaac
У меня теперь Builder2007 и DevExpress 52 и работает именно так.Я сам офигел.Скорее всего на Builder 6 и DevExpress 40 тоже бы работало.
Автор: sam291074
Дата сообщения: 13.09.2010 16:45
Подскажите, пожалуйста, есть ли возможность указать компоненту cxShellComboBox фильтр для файлов?
Мне нужно с конкретным расширением показывать файлы, а он кажет все.
Что-то погуглил и ничего не нашел
Автор: sldaac
Дата сообщения: 13.09.2010 16:51
Mzman
так и Czechoslovak говорил как работает, скорее всего это в билдоре такой синтаксии. В таком случае вы должны были знать.
Автор: Mzman
Дата сообщения: 14.09.2010 00:45

Цитата:
Mzman
так и Czechoslovak говорил как работает, скорее всего это в билдоре такой синтаксии. В таком случае вы должны были знать.
)))))))
Даже и подумать не мог о таком.Хотя...все может быть.
Автор: Andryshok
Дата сообщения: 14.09.2010 13:10
Не знает ли кто как в cxGrid (вид DBTAble) работать с multiselect ну совершать какие либо операции с выделенными записями ?
Автор: afiget
Дата сообщения: 14.09.2010 13:56
Andryshok
Раздел справки:
Base Concepts - Focused/Selected Records
Автор: Andryshok
Дата сообщения: 14.09.2010 13:59
Пока получилось только так

Код:
var
i:integer;
begin
if messagebox(Handle,
'Вы действительно хотите переместить выбранный товар ?', 'Подтвердите',
MB_YESNO + MB_ICONQUESTION) = IDYES then begin
dataform.IBCDataSource7.DataSet.DisableControls;
for i:=0 to form6.cxGridDBTableView1.Controller.SelectedRowCount-1 do begin
dataform.SkladNomenklStoredProc.ParamByName('ID').AsInteger:=StrtointDef(form6.cxGridDBTableView1.Controller.SelectedRows[i].Values[form6.cxGridDBTableView1ID.ID],0);
dataform.SkladNomenklStoredProc.ParamByName('NOMENKLID1').AsInteger:=dataform.NomenklatQueryKOD.AsInteger;
dataform.SkladNomenklStoredProc.ParamByName('NOMENKLID2').AsInteger:=dataform.NomenklatTwoQueryKOD.AsInteger;
dataform.SkladNomenklStoredProc.ParamByName('NOMENKLID3').AsInteger:=dataform.NomenklThreQueryKOD.AsInteger;
dataform.SkladNomenklStoredProc.ParamByName('NOMENKLID4').AsInteger:=dataform.NomenklaturaFORQueryKOD.AsInteger;
dataform.SkladNomenklStoredProc.Prepare;
dataform.SkladNomenklStoredProc.Execute;
end;
dataform.IBCDataSource7.DataSet.EnableControls;
messagebox(Handle,'Перемещено', 'Информация', MB_OK + MB_ICONINFORMATION);
end;
end;
Автор: sldaac
Дата сообщения: 14.09.2010 13:59
Andryshok

Цитата:
Не знает ли кто как в cxGrid (вид DBTAble) работать с multiselect ну совершать какие либо операции с выделенными записями ?

Первое что вспоминаю, Del, удержание Shift и кликание мышкой выделение записей.
А что еще надо, попробуй стандартные комбинации клавиш Вырезать, Копировать
ну и afiget правильно подсказал, проверяеш на Selected и делаеш что тебе надо
Автор: Andryshok
Дата сообщения: 14.09.2010 14:38
sldaac Спасибо конечно за ответ, но вопрос уже решен вышеописанным способом, как видишь в выложенном коде - копировать мне ничнго не надо, а надо выполнять хранимую процедуру на выделенных записях
Автор: bekturov
Дата сообщения: 14.09.2010 14:52
Здравствуйте !

Пользователь модифицирует значение в cxDbCurrencyEdit, нажимает ввод, значение сохраняется в БД, и текущая строка набора данных перечитывается (TMsQuery.RefreshRecord). Если пользователь вводит ноль, то при перечитывании в поле, превязанном к редактору содержиться значение, отличное от нуля, но в редакторе не отображается пока редактор не потеряет фокус. Как можно обновить отображаемое значение ? Refresh, Update, UpdateDisplayValue не помогают.
Автор: Andryshok
Дата сообщения: 14.09.2010 15:02
bekturov Посмотри свойство Optionns -> ValidateOnEnter
Автор: bekturov
Дата сообщения: 14.09.2010 15:27
Andryshok

не понял, а как оно тут может помочь ?
Автор: Andryshok
Дата сообщения: 14.09.2010 16:05

Цитата:
Как можно обновить отображаемое значение ? Refresh, Update, UpdateDisplayValue не помогают

Вообщем насколько я понимаю дело вот в чем - обновлять надо значение не в редакторе а в БД так как cxDbCurrencyEdit лишь только связывает вас с датасетом что за значение в нем - возможно NULL или какое то другое - которое устанавливает КОНСТРУКТОР по умолчанию, либо использовать обычный cxCurrencyEdit и в событии onchange вызывать Хранимую процедуру которая обновляет данные в базе , Вам смысл понятен ?

Добавлено:
Или же в нем (cxDbCurrencyEdit) в событии OnChange делать post в вашем датасете
Т.к. DisplayValue это value датасета
Автор: bekturov
Дата сообщения: 14.09.2010 17:28
В датасете у меня данные обновленные, как раз в этом и проблема, когда DbCurrencyEdit находиться в режиме редактирования и было изменено значение поля, привязанное к редактору (в моем случае вызов RefreshRecord), то значение в редакторе не обновляется, остается прежним, пока не будет перемешен фокус на другой компонет.

Добавлено:
так вроде работает cxDBCurrencyEdit1.EditValue := cxDBCurrencyEdit1.DataBinding.StoredValue, можно актуализировать отображаемое значение через protected метод SetInternalDisplayValue, как как-то не нравиться мне это, больно хитро
Автор: Andryshok
Дата сообщения: 15.09.2010 08:15

Цитата:
о значение в редакторе не обновляется, остается прежним, пока не будет перемешен фокус на другой компонет

Обновлять надо методом post сам датасет а не cxDBCurrencyEdit1 , пробовал вариант?
Цитата:
(cxDbCurrencyEdit) в событии OnChange делать post в вашем датасете

Автор: mdid
Дата сообщения: 15.09.2010 15:49
народ подскажите плз..как добраться до сумм в группировке?

то есть получить значения

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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