Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать имя TcxGridDBColumn в событии OnPopup / 18 сообщений из 18, страница 1 из 1
17.07.2017, 11:46:46
    #39490046
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
Есть 2 очень похожие колонки типа PopupEdit. только выбирается в них разные данные - из разных таблиц.
Я не вижу смысла пилить 2 разных события.
В PopupEdit нужно показать разное содержимое в зависимости от того, по какой колонке кликнули. Редактирование непосредственно в таблице.
Но проблема в том, что
Код: pascal
1.
TcxPopupEdit(sender).name


возвращает пустую строку.

Не соображу, как добраться до имени самой колонки или до свойства TAG, например.

Код: sql
1.
TcxPopupEdit(sender).parent


возвращает TcxGridSite.
...
Рейтинг: 0 / 0
17.07.2017, 12:06:04
    #39490072
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
HitTest, GetHitTest у грида/трилиста
...
Рейтинг: 0 / 0
17.07.2017, 12:19:34
    #39490086
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
т.е .в само событии OnPopup никак?
...
Рейтинг: 0 / 0
17.07.2017, 12:23:18
    #39490090
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
X11,

прямо в этом событии и вызывать, чтобы узнать, что сейчас под мышкой находится (какая колонка, запись, нод).
...
Рейтинг: 0 / 0
17.07.2017, 12:38:06
    #39490101
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
Код: pascal
1.
2.
3.
4.
5.
 var Point: TPoint;
begin
 GetCursorPos(Point);

 TcxGridSite(TcxPopupEdit(sender).Parent).ViewInfo.GetHitTest(Point).ClassName


возвращает 'TcxGridViewNoneHitTest'



чтобы было понятнее, я щёлкаю по "NewItemRow", такой результат и должен быть?

Или я координаты неправильно передаю?
...
Рейтинг: 0 / 0
17.07.2017, 12:42:49
    #39490110
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
ага, переделал так:

Код: pascal
1.
2.
 GetCursorPos(Point);
 point := ScreenToClient(Point);


теперь 'TcxGridRecordCellHitTest'
...
Рейтинг: 0 / 0
17.07.2017, 12:43:20
    #39490113
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
X11,

проверить просто View.Controller.FocusedItem или FocusedColumn - совсем нет?
...
Рейтинг: 0 / 0
17.07.2017, 12:46:25
    #39490118
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
В общем, вот что получилось:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
 Point: TPoint;
 HitTest: TcxCustomGridHitTest;
begin
 GetCursorPos(Point);
 point := ScreenToClient(Point);
 HitTest := TcxGridSite(TcxPopupEdit(sender).Parent).ViewInfo.GetHitTest(Point);
 if HitTest is TcxGridRecordCellHitTest then
   s := TcxGridDBColumn(TcxGridRecordCellHitTest(HitTest).Item).Name;



спасибо
...
Рейтинг: 0 / 0
17.07.2017, 12:49:03
    #39490120
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
ma1tusX11,

проверить просто View.Controller.FocusedItem или FocusedColumn - совсем нет?

Код: pascal
1.
TcxGridSite(TcxPopupEdit(sender).Parent).GridView.Controller.


здесь нет ничего, связанного с "Focused..."
...
Рейтинг: 0 / 0
17.07.2017, 12:52:47
    #39490124
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
X11здесь нет ничего, связанного с "Focused..."X11по какой колонке кликнулиХм, ладно )
...
Рейтинг: 0 / 0
17.07.2017, 13:18:00
    #39490138
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
бред какой-то :(

Код: pascal
1.
2.
3.
4.
 if HitTest is TcxGridRecordCellHitTest then
   col := TcxGridDBColumn(TcxGridRecordCellHitTest(HitTest).Item)
 else
   col := nil;



щёлкаю в одном и том же месте, а col принимает то одну, то вторую колонку
...
Рейтинг: 0 / 0
17.07.2017, 13:30:10
    #39490150
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
X11ничего, связанного с "Focused..."Привести к типу, TcxGridTableController(...).Focused...
...
Рейтинг: 0 / 0
17.07.2017, 13:47:38
    #39490161
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
Код: pascal
1.
2.
3.
4.
procedure TForm1.cxEditRepository1PopupItem1PropertiesPopup(Sender: TObject);
begin
  ShowMessage(TcxgridTableView(TcxPopupEdit(Sender).Owner).Controller.EditingItem.Name);
end;
...
Рейтинг: 0 / 0
17.07.2017, 14:41:03
    #39490206
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
DimaBr, спасибо

как же я забыл про owner
...
Рейтинг: 0 / 0
17.07.2017, 14:42:58
    #39490209
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
Причём тут Owner ?
...
Рейтинг: 0 / 0
17.07.2017, 14:44:30
    #39490210
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
потому что я упёрся в parent, поэтому не мог найти Controller
...
Рейтинг: 0 / 0
17.07.2017, 14:54:10
    #39490221
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
Вот тебе Parent, какая разница ?
Код: pascal
1.
2.
3.
4.
procedure TForm1.cxGrid1TableView1Column1PropertiesPopup(Sender: TObject);
begin
  Caption := TcxCustomGridTableController(TcxGridSite(TcxPopupEdit(Sender).Parent).GridView.Controller).EditingItem.Name
end;
...
Рейтинг: 0 / 0
17.07.2017, 14:59:09
    #39490226
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать имя TcxGridDBColumn в событии OnPopup
спасибо :)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать имя TcxGridDBColumn в событии OnPopup / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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