Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / BINDEVENT / 14 сообщений из 14, страница 1 из 1
23.01.2011, 19:40
    #37074022
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
Всем привет!
Возникла следующая проблемка.
Необходимо в гриде перехватывать RightClick на Headere (вышаю по правому щелчку свою процедуру)
Мой INIT класса грида

this.RecordSource=""
this.crcur

this.ColumnCount = FCOUNT()
FOR i = 1 TO this.ColumnCount
BINDEVENT(this.Columns[i].Header1, "RightClick", THIS, "FilterbyColumn",0)
ENDFOR

--Метод FilterbyColumn
LOCAL laSource(1)
=AEVENTS(laSource,0)

LOCAL loColumn
loColumn = laSource[1]

? m.loColumn.caption
Т.е по правому щелчку должно выскочить caption столбца.
Все замечательно работает, но только один раз
при запуске приложения.
Запускаю форму с грид, данные в грид показываются.
Закрываю форму, снова запускаю - и грид пустой как белый лист. Ни полосок, ни хеадеров.
Повесил в destroy класса
this.ColumnCount = FCOUNT()
FOR i = 1 TO this.ColumnCount
UNBINDEVENTS(this.Columns[i].Header1, "RightClick", THIS, "FilterbyColumn")
ENDFOR
Но увы...
Есть решение?
...
Рейтинг: 0 / 0
23.01.2011, 20:37
    #37074078
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
miv32,

Стоит проверить DataSession и FCOUNT()
http://msdn.microsoft.com/en-us/library/ckh4wek7(v=vs.80).aspx FCOUNT( ) returns 0 if a table isn't open in the work area you specify.
...
Рейтинг: 0 / 0
24.01.2011, 07:42
    #37074438
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
BINDEVENT() тут вообще ни при чем. Можешь его убрать и ничего не изменится.

Грид показывается "белым квадратом" когда недоступен его источник данных, т.е. не открыта таблица/курсор, которую он должен отображать.
...
Рейтинг: 0 / 0
24.01.2011, 08:18
    #37074447
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
Имя курсора, на основе которого строится грид у меня делается так:

*Формируем уникальное имя курсора*
ncurr='_'+SUBSTR(SYS(2015), 3, 10)
THIS.namecursor=ncurr

И потом я его в destroy-е грида закрываю, чтобы не маячил :)
Работало все нормально, но видимо BINDEVENT не любит этого дела.
Убрал закрытие в destroy и стало все пучком.

*!* IF USED(THIS.namecursor)
*!* SELECT (THIS.namecursor)
*!* USE
*!* ENDIF
...
Рейтинг: 0 / 0
24.01.2011, 11:21
    #37074789
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
вопрос:
почему использована именно подписка на события?
сделать, использовав класс колонки и хедера невозможно?
...
Рейтинг: 0 / 0
24.01.2011, 23:17
    #37076451
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
Невозможно.
Знал бы прикуп, жил бы в Сочи :)
На основе данного класса грид настроено уже много чего.
А так малой кровью обошелся.
...
Рейтинг: 0 / 0
25.01.2011, 08:58
    #37076642
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
miv32Невозможно.
Знал бы прикуп, жил бы в Сочи :)
На основе данного класса грид настроено уже много чего.
А так малой кровью обошелся.

доработать класс, который уже используется религия не позволяет?

о том, что Вы обошлись малой кровью расскажите нам после
того, как будете отлаживать и лечить непредсказуемые разрушения,
к которым ведет необдуманное использование подписки.
...
Рейтинг: 0 / 0
25.01.2011, 09:08
    #37076653
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
прошелмимоо том, что Вы обошлись малой кровью расскажите нам после
того, как будете отлаживать и лечить непредсказуемые разрушения,
к которым ведет необдуманное использование подписки.
Если не секрет - что за разрушения?

Я отказался от своих хэдеров в пользу BINDEVENT(), проблем нет.
...
Рейтинг: 0 / 0
25.01.2011, 09:28
    #37076670
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
Dima Tпрошелмимоо том, что Вы обошлись малой кровью расскажите нам после
того, как будете отлаживать и лечить непредсказуемые разрушения,
к которым ведет необдуманное использование подписки.
Если не секрет - что за разрушения?

Я отказался от своих хэдеров в пользу BINDEVENT(), проблем нет.

молодец - только никому этого не советуй делать,
и то, что у тебя нет проблем - это не показатель.
и в чем причина отказа от класса хедера в сторону подписки?
в чем причина отказа от разработки класса с заранее описанными методами,
который легко редактируется и отлаживается?

по поводу критич-го разрушения среды,
в моей практике была задача по оптимизации простыни в 1,5 МБт
с прогр.опеределением классов, динамическим добавлением объектов на форму и
подпиской на события.
После такого стиля программирования 2 отдела разработчиков (в разл.городах РФ)
не могли дать "ладу" причине, по которой идет разрушение среды.
На все мои вопросы: зачем, зачем так вести разработку?
я получил только один ответ: а ... его знает.

Поэтому мой совет: если нет опыта работы с подпиской,
а тем более есть возможность разработки класса, что является более логичным,
то стоит поступать именно так: разрабатывать класс грид со своими(не базовыми)
классами колонок и хедеров.
...
Рейтинг: 0 / 0
25.01.2011, 11:03
    #37076917
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
Предлагаю обсудить этот вопрос в отдельной теме

В каких случаях следует использовать BindEvents
...
Рейтинг: 0 / 0
25.01.2011, 11:13
    #37076960
Жека К
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
ВладимирМ, здравствуйте!!
Не подскажете, как можно автоматически заполнить поле грид, при вводе данных в другое поле грида??
очень нужна ваша помошь!!
...
Рейтинг: 0 / 0
25.01.2011, 11:17
    #37076976
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
ВладимирМПредлагаю обсудить этот вопрос в отдельной теме

В каких случаях следует использовать BindEvents

неполучитсо, - я с субъектами, которые загибают пальцы
про то как можно сделать то-то и выпячивают свое пузо
про то, как много они способов знают того, как что-то сделать
не обсЧаюсь нормально.

у разработчиков, которые используют среду
для создания стабильно работающих приложений,
задумывающихся над тем, как масштабировать затем
свой продукт, как его сопровождать
(в т.ч. четко, явно, быстро давать оценку ошибкам, проблемам) -
иные приоритеты,
которые неведомы "кулинарам".
...
Рейтинг: 0 / 0
25.01.2011, 11:19
    #37076986
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
ВладимирМПредлагаю обсудить этот вопрос в отдельной теме

В каких случаях следует использовать BindEvents

и нехрен здесь открывать "филал фоксклуба",
как сказал здешний модератор
...
Рейтинг: 0 / 0
25.01.2011, 11:40
    #37077071
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BINDEVENT
> Автор: ВладимирМ
> Предлагаю обсудить этот вопрос в отдельной теме

ответил.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / BINDEVENT / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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