Показать сообщение отдельно
Старый 03.03.2003, 08:51   #23  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Привет.

Цитата:
На черный день у нас есть 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 ограничит использование этого компонента ?
И вообще, кого-нибудь кроме нас это интересует ?
Вложения
Тип файла: zip activex_version.zip (278.6 Кб, 86 просмотров)