Страница 1 из 1
Определение YPos активной строки в списке
Добавлено: 10 Ноябрь 2007, 9:39
NewUser
Напомните мне, пожалуйста, как программно определить YPos активной строки в Browse. Надо для того, чтобы сразу же под ней вывести свое окно.
Добавлено: 10 Ноябрь 2007, 14:13
Admin
Нопомните ... т.е. ты раньше знал
Я х.з.
Думаю вот так... к примеру:
?Browse{PROP:YPos} + ((CHOOSE(?Browse) * ?Browse{PROP:LineHeight}) + HeaderSize) - ?Browse{PROP:LineHeight}/2
HeaderSize я х.з. ка узнать
И! CHOOSE(?Browse) возвращает не позицию в текущем отображении а позицию в очереди
Добавлено: 11 Ноябрь 2007, 15:44
NewUser
Но в EIP-е, например, это же как-то рассчитывается. Там всё тютелька в тютельку.
Добавлено: 12 Ноябрь 2007, 9:44
Tolusha
Попробуй так:
Код: Выделить всё
?List{prop:column} = 1
c# = Create(0, CREATE:REGION)
?List{prop:edit, 1} = c#
GetPosition(c#, x#, YPOS#, w#, h#)
?List{prop:edit, 1} = 0
Desroy(c#)
?List{prop:column} = 0
MyWindow{prop:ypos} = ?List{prop:ypos} + ypos#
Добавлено: 12 Ноябрь 2007, 12:39
NewUser
Спасибо за направление раскопок.
Получилось более-менее похожее на задуманное:
Mod:YPos = 0{PROP:YPos} + ?Sheet1{PROP:YPos} + ?List:Zams{PROP:YPos} + ((CHOICE(?List:Zams) * ?List:Zams{PROP:LineHeight}) + 34)
где 34 – экспериментально подобранное значение высоты заголовка Browsa
Только все это будет работать с количеством записей, не превышающем максимального количества строк в Browse.
А что, нет никакой возможности определить номер активной строки в Browse?
Добавлено: 12 Ноябрь 2007, 12:56
Tolusha
NewUser писал(а):А что, нет никакой возможности определить номер активной строки в Browse?
Брось ты все эти "экспериментально подобранные значение". Ни к чему хорошему это не приведет.
Добавлено: 12 Ноябрь 2007, 13:11
ru_alex
Добавлено: 12 Ноябрь 2007, 13:40
NewUser
Все огромное спасибо. Совместными усилиями получилась полностью удовлетворяющая меня версия:
Mod:YPos = 0{PROP:YPos} + ?Sheet1{PROP:YPos} + ?List{PROP:YPos} + ?List{PROP:Selected} * ?List{PROP:LineHeight} + ?List{PROP:HeaderHeight}*2
*2 – это 2х-уровневый заголовок.
Добавлено: 12 Ноябрь 2007, 15:42
Admin
А для чего окошко под строкой листа?

Добавлено: 12 Ноябрь 2007, 20:46
NewUser
Окошко со списком данных, которые может выбрать пользователь во время добавления новой записи в EIP. А может и не выбрать – свои внести. Окошко чистое - без всяких заголовков, прокруток, кнопок.