Привет.
Цитата:
На черный день у нас есть ActiveX. Как еще один вариант, можно попробовать написать свой ActiveX контрол на обычном языке программирования и использовать его в Аксапте.
Возвращаясь к этому замечанию, а что ты думаешь насчет ActiveX ?
Вот смотри, к сообщению приложен ActiveX(аналог Table в первом приблищении) и еще одна формочка с МИНИМУМОМ кода:
PHP код:
void clicked()
{
sg.RowCount(100);
sg.SetCellValue(1,1,"Hello");
}
Здесь я устанавливаю количество строк и в определенную ячейку вывожу значение. Точно также можно динамически увеличить количество столбцов. И не надо создавать дополнительные контролы, как это приходилось делать в Table. Не надо динамически создавать методы.
Поехали дальше:
PHP код:
void onEvent_OnTopLeftChanged()
{
st.text(int2str(sg.MaxVisibleRow()));
}
Это на ActiveX перекрыто событие. Событие вызывается каждый раз, когда изменяется левый верхний видимый угол в таблице. То есть, повесившись на него мы обрабатываем скролирование. Добавим к этому метод MaxVisibleRow(), который возвращает номер самой нижней отображаемой строки таблицы, за все время существования ее экземпляра. Имее это мы:
1. ГАРАНТИРОВАННО отлавливаем событие скролирования.
2. Определяем В КАКОМ НАПРАВЛЕНИИ происходит это скролирование.
3. Все это работает без той, кучи ужасного кода, который мы имеем при реализации чисто Аксаптовского варианта.
P.S.
1. На написание этого ActiveX я потратил около 20 минут.
2. Этот ActiveX можно существенно расширить, добавив в него, то что нам необходимо. Всего лишь вопрос желания и времени.
P.S. осх-ку нужно сначало зарегистрировать в системе.
Как ты считаешь, насколько реализация в виде ActiveX ограничит использование этого компонента ?
И вообще, кого-нибудь кроме нас это интересует ?