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

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

Автор: vladman
Дата сообщения: 04.11.2010 18:36
Man_Without_Face

Цитата:
Как узнать загружен рисунок в cxImage или нет?
cxImage.isLoading не подходит. Спасибо.

isLoading - это свойство TcxControl дальним наследником которого и является TcxImage и оно указывает совсем на другое - находится ли компонент в состоянии загрузки из стрима.
Для решения вашего вопроса достаточно вызвать

Код: if IsPictureEmpty(<Your>cxImage.Picture) then ShowMessage('Empty')
else ShowMessage('Filled'
Автор: marser
Дата сообщения: 04.11.2010 19:05
MagistrAnatol

Код: как сделать чтобы в гриде по енреру передвигался курсор на следующую колонку?
Автор: vladman
Дата сообщения: 04.11.2010 19:42
marser

Цитата:
TableView.OptionsBehavior.GoToNextCellOnEnter := True;

Можно и так, но в таком случае при достижении конца строки и нажатии Enter, фокус не будет перемещаться на следующую строку. Так что оба варианта хороши, но с нюансами ).
Автор: MedvedevDM
Дата сообщения: 04.11.2010 19:47
Как узнать в гриде, на какой строке остановился пользователь,
какая строка активная?
И еще - значение поля в строке, интересует значение
ключевого поля таблицы. Можно ли получить и как?

Автор: TechnoDreamer
Дата сообщения: 04.11.2010 23:53

Цитата:
Цитата:
TableView.OptionsBehavior.GoToNextCellOnEnter := True;

Можно и так, но в таком случае при достижении конца строки и нажатии Enter, фокус не будет перемещаться на следующую строку. Так что оба варианта хороши, но с нюансами ).

С FocusCellOnCycle будет.


Добавлено:
MedvedevDM

Цитата:
Как узнать в гриде, на какой строке остановился пользователь,
какая строка активная?

View.Controller.FocusedRecord


Цитата:
И еще - значение поля в строке, интересует значение
ключевого поля таблицы. Можно ли получить и как?

Грид синхронизирован с датасетом? Тогда через датасет и смотри.
Автор: MedvedevDM
Дата сообщения: 05.11.2010 00:30
Как я понял, перемещение по строкам в гриде приводит к перемещению позиции в датасете?
А что грид может быть не синхронизирован?
Автор: TechnoDreamer
Дата сообщения: 05.11.2010 00:45
DataController.DataModeController.SyncMode
Автор: vladman
Дата сообщения: 05.11.2010 01:39
TechnoDreamer

Цитата:
С FocusCellOnCycle будет.

Есть масса правильных решений одной проблемы - выбери лучшее. У каждого - лучшее свое. Так что Ok, не оба, а все три варианта хороши. И не факт, что только три. ).

Добавлено:
MedvedevDM

Цитата:
И еще - значение поля в строке, интересует значение
ключевого поля таблицы. Можно ли получить и как?


Цитата:
Тогда через датасет и смотри.

В общем случае, опять же, о правильных решениях, лучше установить значение свойства <Your>cxTableView.DataController.KeyFields, и воспользовавшись функцией GetKeyFieldsValues
вашего DataController'а получить значени этого самого поля.
Т.е., например, в onFocusedRecordChanged выполнив

Код: ShowMessage(VarToStr(<Your>cxGridDBTableView.DataController.GetKeyFieldsValues));
Автор: fortezza
Дата сообщения: 05.11.2010 12:24
подскажите, можно ли сделать так, что бы при фильтрации подключаемых к колонкам cxGrida списков, содержимое ячеек не изменялось (не пропадало)? Есть такое в настройках?
Автор: marser
Дата сообщения: 05.11.2010 12:50
fortezza

Цитата:
подскажите, можно ли сделать так, что бы при фильтрации подключаемых к колонкам cxGrida списков, содержимое ячеек не изменялось (не пропадало)? Есть такое в настройках?

Ничего не понял. Вы имеете ввиду, что есть колонка с PropertiesClass := TcxLookupComboBox и в Properties.ListSource.DataSet.Filter присваивается какое-нибудь условие?
Добавлено
Если так, то нужно накладывать фильтр не на DataSet, а на выпадающий грид в обработчике события OnInitPopup:

Код: with TcxLookupComboBox(Sender).ActiveProperties.Grid do
begin
DataController.Filter.Clear;
DataController.Filter.Root.AddItem(...);
DataController.Filter.Active := True;
end;
Автор: fortezza
Дата сообщения: 05.11.2010 14:24
накладывать фильтр, всмысле добавлять итемы вручную? для этого придется пройтись по дата сету и если запись удовлетворяет условию - добавить?; либо сделать ещё один датасет с постоянным фильтром и просто добавлять его итемы?
я так понимаю это самый простой вариант?
Автор: marser
Дата сообщения: 05.11.2010 16:51
fortezza

Код: я так понимаю это самый простой вариант?
Автор: fortezza
Дата сообщения: 05.11.2010 17:28
о, спасибо, попробую

Добавлено:
а если фильтрация нужна так же по другому полю списка для которого нет колонки?
Автор: marser
Дата сообщения: 05.11.2010 17:53
fortezza
Добавте нужные колонки в грид и сделайте невидимыми. Если используете схExtLookupComboBoх, то используете свойства колонок Visible := False. Если схLookupComboBoх, то свойства колонок: Fixed := True, Width := 0
Автор: SIgor33
Дата сообщения: 07.11.2010 09:52
Подскажите можно ли сделать чтобы у PageControl если всего одна Page не было видно вкладки (она не отображалась)
Автор: TechnoDreamer
Дата сообщения: 07.11.2010 10:56
SIgor33
cxPageControl.HideTabs:=cxPageControl.PageCount=1;
Автор: CrVik
Дата сообщения: 08.11.2010 04:42
Привет знатокам Девок, помогите начинающему в них разобраться.

Имеем TcxTreeList с включенной опцией CheckBoxGroup:=True;
Есть колонка с цифрами, нужно подбить сумму только там где Checked=True

Пробую вот таким образом:

procedure TfrmAbonent.TreeListSummary(ASender: TcxCustomTreeList;
const Arguments: TcxTreeListSummaryEventArguments;
var OutArguments: TcxTreeListSummaryEventOutArguments);
begin
if ASender.Items[Arguments.SummaryItem.AbsoluteIndex].Checked then
begin
OutArguments.Value:=ASender.Items[Arguments.SummaryItem.AbsoluteIndex].Values[1];
OutArguments.Done := true;
end;
end;


Автор: MagistrAnatol
Дата сообщения: 08.11.2010 08:28
vladman
frmMain->tDvig_Ins->FBN("Cyma")->AsFloat=frmMain->tDvig_Ins->FBN("Kolvo")->AsFloat*frmMain->tSpr_Tovar->FBN("Zina")->AsFloat;
frmMain->tDvig_Ins->FBN("Kolvo")->AsFloat почемуто не могу поменять, причем
V_KolvoItem->EditValue результат тотже
Автор: chydachok
Дата сообщения: 08.11.2010 21:49
Вопрос к читателям данной ветке, кто может поделиться учеткой на DevExpress с которой есть возможность создавать топики в Support Center?
Автор: vladman
Дата сообщения: 09.11.2010 00:29
MagistrAnatol

Цитата:
frmMain->tDvig_Ins->FBN("Cyma")->AsFloat=frmMain->tDvig_Ins->FBN("Kolvo")->AsFloat*frmMain->tSpr_Tovar->FBN("Zina")->AsFloat;
frmMain->tDvig_Ins->FBN("Kolvo")->AsFloat почемуто не могу поменять, причем
V_KolvoItem->EditValue результат тотже

Раз это сообщение персонально ко мне, то хочется уточнить, может у этого сообщения была какая-то предыстория ), которую я мог пропустить? Но, все же, рискну предположить, может поле *Kolvo* отсутствует в Update операторе вашего, не знаю какого типа, tDvig_Ins. А ребусы на сон грядущий - это хорошо ))).

Добавлено:
CrVik

Цитата:
Имеем TcxTreeList с включенной опцией CheckBoxGroup:=True;
Есть колонка с цифрами, нужно подбить сумму только там где Checked=True

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

Код: procedure <Your>Form.<Your>cxTreeListNodeCheckChanged(Sender: TcxCustomTreeList; ANode: TcxTreeListNode; AState: TcxCheckBoxState);
begin
<Your>cxTreeList.Summary.Recalculate;
end;

procedure <Your>Form.<Your>cxTreeListSummary(ASender: TcxCustomTreeList; const Arguments: TcxTreeListSummaryEventArguments; var OutArguments: TcxTreeListSummaryEventOutArguments);
begin
if Arguments.SummaryItem.CalculatedColumn = <Your>cxTreeList<ColumnForSummary> then
if not Arguments.Node.Checked then OutArguments.Value := 0;
end;
Автор: MagistrAnatol
Дата сообщения: 09.11.2010 08:58
vladman
на предідущей странице посмотри мои посты, кста ты на них отвечал из-за чего и ответил лично тебе
Автор: vladman
Дата сообщения: 10.11.2010 00:24
MagistrAnatol

Цитата:
на предідущей странице посмотри мои посты

Да было такое, ок, посмотрю что там да как и постараюсь набросать примерчик, но немного по-позже.

Добавлено:
MagistrAnatol

Цитата:
почемуто не могу поменять

А вы уверены в правильности своего Update опреатора? какое у вас ключевое поле в таблице OCT_TMZ_DVIG? Очень похоже, что OCT_TMZ_NAKL_ID, вы его даже в Insert операторе генератором назначаете. А вот в WHERE вашего Update оператора вы указали OCT_TMZ_DVIG = LD_OCT_TMZ_DVIG. Почему? Лучше, конечно, посмотреть ваш код и вашу базу на примере, который показывает что и как у вас не получается.
Автор: MagistrAnatol
Дата сообщения: 10.11.2010 08:35
vladman

Цитата:
А вы уверены в правильности своего Update опреатора

ага
OCT_TMZ_NAKL_ID ключ главной таблицы - подставил на всяк случай, хотя он геперится автоматом
Автор: vladman
Дата сообщения: 10.11.2010 10:31
MagistrAnatol

Цитата:
ага

В таком случае что такое OCT_TMZ_DVIG?
Автор: mdid
Дата сообщения: 10.11.2010 10:40
народ никак не могу понять че я пропускаю...есть грид вида
__
|_lev1 (DBTableView)
|_lev2 (DBTableView)
|_lev3 (DBTableView)
на втором уровне надо что бы колонка была с выпадающим списком..выбираю пропертис Combobox пихаю туда данные...но при запуске программы список не вываливается

cellselect = true
всякие editing = true

что не так?
Автор: vladman
Дата сообщения: 10.11.2010 10:47
mdid

Цитата:
но при запуске программы список не вываливается

А другие колонки второго уровня изменить получается?
Автор: f3ka
Дата сообщения: 10.11.2010 10:49
mdid

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

если нет значит, нет связи мастер-детайл правильной
Автор: mdid
Дата сообщения: 10.11.2010 10:58
vladman
f3ka
понял..пасиб...забыл KeyFieldNames добавить...везде стоит а тут пропустил
Автор: X11
Дата сообщения: 10.11.2010 12:15
В cxGrid есть колонка типа ButtonEdit. В событии ButtonClick прописал код, но код не срабатывает, событие не срабатывает. В гугле ничего интересного не нашёл.
D200, Dev52.


Код:
procedure TfmMediatorsSearch.dbgMedE_MAILPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
ShowMessage(Sender.ClassName);

end;
Автор: vladman
Дата сообщения: 10.11.2010 12:24
X11

Цитата:
В событии ButtonClick прописал код, но код не срабатывает, событие не срабатывает

Не срабатывает когда вы кликаете на кнопку? Редактирование грида/поля разрешено?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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