Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) ТабличноеПоле? Как вывести меню в нужном месте? (число прочтений - 8152 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ТабличноеПоле? Как вывести меню в нужном месте?
25. Мая 2006 :: 10:12
Печать  
Очень приятный и читабельный код. Проффесиональный, завидую. )))
Однако пока не разобрался.
Проблемка. Как подстроить меню под текущую ячейку.
При клике мышкой, можно воспользоваться PopupMenu, а если нажат Enter приходится пользоваться уродским выбором из списка в диалоге. Да и при клике вне заполненных строк хотелось бы как-то отреагировать негативно...
Документашка замечательная (*.chm) однако, может что пропустил?
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #1 - 25. Мая 2006 :: 10:33
Печать  
Есть идея добавить к табличному полю функцию, PopupMenu(ПараметрСписокЗначений)
Отображающую меню в районе активной ячейкой, принимающей список значений для построения меню.
)) соответсвенно возврашающей выбор из меню.
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #2 - 25. Мая 2006 :: 10:40
Печать  
Над табличным полем можно пользоваться методом Сервис::ВыбратьЗначение(), меню будет подстраиваться под текущую ячейку автоматом (при указании состветствующего параметра).
  

FormEx developer
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #3 - 25. Мая 2006 :: 10:47
Печать  
Вот это здорово. Это бы в фак поместить и в документашку..
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #4 - 25. Мая 2006 :: 11:46
Печать  
trdm писал(а) 25. Мая 2006 :: 10:47:
Вот это здорово. Это бы в фак поместить и в документашку..

К сожалению не подтверждаю.

Процедура РеквТабличноеПолеВыбор(ТабличноеПоле)
....
СписВыбора = СоздатьОбъект("СписокЗначений");
СписВыбора = глСтрокаВСписок("Раз,Два,Три");
тЗначение = "";
Если глСервис.ВыбратьЗначение(СписВыбора,тЗначение,"",0,0) = 1 Тогда
    Сообщить(тЗначение);
КонецЕсли;
....
Задирает меню в левый верхний угол экрана....
((((((
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #5 - 25. Мая 2006 :: 13:11
Печать  
Я тебя в аську ответил. Там у Дмитрия недоработка небольшая. Координаты активной ячейки определяются только в CCursorGridCtrl:УжасnContextMenu().
  

FormEx developer
Наверх
www  
IP записан
 
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #6 - 26. Мая 2006 :: 06:04
Печать  
trdm, Если решил проблему, расскажи, пожлста, многим пригодится
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #7 - 26. Мая 2006 :: 06:14
Печать  
Не, к сожалению не решил. Думаю надо дорабатывать исходник.
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #8 - 31. Мая 2006 :: 12:15
Печать  
Блин, так и не нашел времени на это дело ((((
Жаль....
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #9 - 31. Мая 2006 :: 12:22
Печать  
trdm писал(а) 31. Мая 2006 :: 12:15:
Блин, так и не нашел времени на это дело ((((
Жаль....

Попробуй внести в файл CursorGridCtrl.cpp такое вот изменение:
Код
Выбрать все
CPoint CCursorGridCtrl::GetContextMenuPosition() const
{
	CPoint point;
    if (m_nCurrentDataRowIndex == -1 || m_nCurrentColumn == -1)
    {
	  point.x = 0;
	  point.y = 0;
    }
    else
    {
	  CRect rect = m_pColumns->GetAt(m_nCurrentColumn)->GetBoundsRect();
	  rect.OffsetRect(0, GetHeaderRect().Height() + (m_nCurrentDataRowIndex - m_nTopRowIndex) * m_nRowHeight);
	  point.x = rect.left;
	  point.y = rect.bottom;
	  if (!GetGridRect().PtInRect(point))
	  {
		point.x = 0;
		point.y = 0;
	  }
    }
    ClientToScreen(&point);
	return point;
//    return m_ptContextMenuPosition;
}
 


У меня сейчас, к сожалению нет времени проверить.
  

FormEx developer
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #10 - 01. Июня 2006 :: 07:55
Печать  
Цитата:
Попробуй внести в файл CursorGridCtrl.cpp такое вот изменение:...

Это для сервис.ВыбратьЗначение()?
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #11 - 01. Июня 2006 :: 07:55
Печать  
trdm писал(а) 01. Июня 2006 :: 07:55:
Цитата:
Попробуй внести в файл CursorGridCtrl.cpp такое вот изменение:...

Это для сервис.ВыбратьЗначение()?

Да.
  

FormEx developer
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #12 - 01. Июня 2006 :: 08:43
Печать  
Ура! )))
Подтверждаю в сегодняшней сборке Сервис.ВыбратьЗначение()
рулит в табличном поле в координатах текущей ячейки!!!!!!!1
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #13 - 01. Июня 2006 :: 08:59
Печать  
trdm писал(а) 01. Июня 2006 :: 08:43:
Ура! )))
Подтверждаю в сегодняшней сборке Сервис.ВыбратьЗначение()
рулит в табличном поле в координатах текущей ячейки!!!!!!!1

С тебя кружечка коньячку  Смех
  

FormEx developer
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТабличноеПоле? Как вывести меню в нужном месте
Ответ #14 - 01. Июня 2006 :: 09:14
Печать  
Цитата:
trdm писал(а) 01. Июня 2006 :: 08:43:
Ура! )))
Подтверждаю в сегодняшней сборке Сервис.ВыбратьЗначение()
рулит в табличном поле в координатах текущей ячейки!!!!!!!1

С тебя кружечка коньячку  Смех

С удовольствием )
Толко замечу, еесли тебе выставят по кружечке коньячку все тебе благодарные
тебе жизни не хватит его выпить)))
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать