Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не сразу присваивается значение в cxEditorRow / 23 сообщений из 23, страница 1 из 1
14.04.2008, 12:10
    #35253062
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Есть VerticalGrid. В ней есть 2 строки (cxEditorRow), у которых EditProperties := PopupEdit.
Значение свойства Value заносим из ноды дерева. Да, вобщем-то, не обязательно из дерева, можно как угодно.
Проблема в том, что Value получает значение, но визуально оно отображается только когда строка грида теряет фокус, а не по нажатию кнопки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 procedure  TfmAreas.btnSelTypeValueClick(Sender: TObject);
 Var 
  PopupWnd: TcxPopupEditPopupWindow;
 begin 
 //присваиваем значение 
  vgAreasID_TYPE.Properties.Value := dbTreeType.DataController.Values[dbTreeType.DataController.FocusedRecordIndex, dbTreeType.FocusedColumn.ItemIndex];

 //прячем панель с деревом и кнопками 
  PopupWnd := TcxPopupEditPopupWindow(cxTabControl1.Parent);
  PopupWnd.ClosePopup();
 end ;
...
Рейтинг: 0 / 0
14.04.2008, 13:15
    #35253296
RENaissance
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
В EditProperties есть свойство ImmediatePost. Попробуйте его выставить в TRUE.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.04.2008, 13:40
    #35253381
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
так и сделано было сразу же
...
Рейтинг: 0 / 0
14.04.2008, 13:42
    #35253389
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
кстати у PopupEdit`а нет такого свойства, а вообще я ImmediatePost встагда выставляю в TRUE.
...
Рейтинг: 0 / 0
14.04.2008, 14:11
    #35253490
RENaissance
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Какой конкретно VerticalGrid используется (DB, Virtual...)?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.04.2008, 14:28
    #35253564
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Прошу прощения за то, что сразу не написАл: TcxVerticalGrid v 3.33 (DevExpress feb2008)
Правильнее, наверное, будет ExpressVerticalGrid v 3.33
...
Рейтинг: 0 / 0
14.04.2008, 14:44
    #35253633
RENaissance
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Как вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure TfmAreas.btnSelTypeValueClick(Sender: TObject); 
Var 
  PopupWnd: TcxPopupEditPopupWindow; 
begin 
//присваиваем значение 
  vgAreasID_TYPE.Properties.Value := dbTreeType.DataController.Values[dbTreeType.DataController.FocusedRecordIndex,
dbTreeType.FocusedColumn.ItemIndex]; 


//прячем панель с деревом и кнопками 
  PopupWnd := TcxPopupEditPopupWindow(cxTabControl1.Parent); 
  PopupWnd.ClosePopup(); 

  // выходим из режима редактирования
  vgAreas.HideEdit();
end; 

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.04.2008, 15:17
    #35253731
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Супер! Спасибо огромное!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.01.2010, 14:55
    #36400577
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
аналогичная проблема cxVerticalGrid 3.45 (не DB)

В событии вертикал грида OnEditValueChanged нужно получить введеное значение поля с EditProperties - TextEdit

делаю так:

Код: plaintext
AStr := vgStr.Properties.Value;

однако vgStr.Properties.Value выдает не текущее (только что введенное), а предыдущее значение.

зы vg.HideEdit не помогает
...
Рейтинг: 0 / 0
08.01.2010, 15:13
    #36400599
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
А может ImmediatePost?
...
Рейтинг: 0 / 0
08.01.2010, 16:04
    #36400658
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
X11,

к тожалению у cxEditorRow нет такого свойства
...
Рейтинг: 0 / 0
08.01.2010, 16:11
    #36400664
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
поправлюсь... у cxEditorRow c EditProperties TextEdit свойства ImmediatePost - нет
...
Рейтинг: 0 / 0
08.01.2010, 16:39
    #36400701
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
а так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 procedure  TForm1.VG1EditValueChanged(Sender: TObject;
  ARowProperties: TcxCustomEditorRowProperties);
 var 
  Edit: TcxCustomEdit;
  NewValue: Variant;
 begin 
  Edit := TcxCustomVerticalGrid(Sender).InplaceEditor;
  NewValue := Edit.EditValue;

...
 end ;
...
Рейтинг: 0 / 0
08.01.2010, 16:44
    #36400705
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
X11,

щас опробую, но как то оно через одно место получается...
...
Рейтинг: 0 / 0
08.01.2010, 17:18
    #36400768
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Mifich,

а если без
Код: plaintext
TcxCustomVerticalGrid(Sender).InplaceEditor;
???
...
Рейтинг: 0 / 0
08.01.2010, 18:10
    #36400855
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
X11,

Дело в том что нужно добраться до текущего значения в поле без InplaceEditor
...
Рейтинг: 0 / 0
09.01.2010, 15:59
    #36401601
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Дело в том, что событие editvaluechanged предназначено для получения значения после редактирования, т.е. вводим значение, нажимаем enter и только тогда срабатывает событие.

Скорее всего, что нужно воспользоваться другим событием, например, OnEditing, которое срабатывает в момент редактирования.
...
Рейтинг: 0 / 0
09.01.2010, 16:02
    #36401603
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Вот так у меня получилось получить значение редактируемой ячейки после нажатия Enter

Код: plaintext
1.
2.
3.
4.
5.
 procedure  TForm3.cxVerticalGrid1EditValueChanged(Sender: TObject;
  ARowProperties: TcxCustomEditorRowProperties);
 begin 
 caption := cxVerticalGrid1.InplaceEditor.EditingValue;
 end ;
...
Рейтинг: 0 / 0
09.01.2010, 16:02
    #36401604
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
MifichX11,

Дело в том что нужно добраться до текущего значения в поле без InplaceEditor

Почему?
...
Рейтинг: 0 / 0
09.01.2010, 22:56
    #36401888
Mifich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
X11,

В вертикал гриде у меня поля:
почтовый индекс, регион, район, город, нас.пункт, дом, корпус, квартира

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

Вариант решения которое хотелось реализовать:
Повесить в событии OnEditValueChanged вертикал грида код
Код: plaintext
полный адрес = VGиндекс + VGрегион + VGрайон + ... + VGквартира
не прокатывает из-за невозможности !одновременно! получить текущее значение полей VGиндекс и VGквартира...

Вот и пришлось объявить строковые переменные Аиндекс и Аквартира, которые заполняются при EditValueChanged поля указанным тобой способом (inplaceeditor), а потом
Код: plaintext
полный адрес = Аиндекс +  ... + Аквартира

Вообще странно, казалось бы самая элементарная задача - получить текущее значение в поле вертикалгрида, а как решить без вспомогательных переменных - не понятно. Может я чегото не догоняю?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.10.2011, 11:03
    #37480158
Alan008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
OnEditValueChanged какое-то не очень хорошее событие. Я вместо него стал использовать событие DataController.OnAfterPost
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.10.2020, 19:41
    #40012834
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
баг, наверное...

Событие OnEditValueChanged срабатывает, но cxEditorRow1.Properties.Value старое значение.
Хотя immediatePost включено (spinEdit).

Но если менять значение не с клавиатуры, а с помощью spin-кнопок, то событие срабатывает и значение в cxEditorRow1.Properties.Value - новое.

И cxVerticalGrid1.HideEdit не помогает
...
Рейтинг: 0 / 0
28.10.2020, 19:56
    #40012842
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сразу присваивается значение в cxEditorRow
Приходится извращаться
Код: pascal
1.
2.
3.
4.
5.
procedure Tfm1.row1EditPropertiesEditValueChanged(Sender: TObject);
var
  NewValue: Variant;
begin
  NewValue := TcxSpinEdit(Sender).EditingValue;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не сразу присваивается значение в cxEditorRow / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]