Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Где поставить SET TALK OFF? / 13 сообщений из 13, страница 1 из 1
12.10.2007, 14:50
    #34865314
AMorkovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
Ставил в CONFIG.FPW, стартовой программе или в LOAD частной формы. На такой форме есть Грид. СOLUMNCOUNT=-1 по умолчанию. Программа пока написана так, что если разработчик забыл изменить его на >0, выдается пустой грид как если СOLUMNCOUNT=0 - чтобы пользователь не увидел ненужные данные. Для этого в СOLUMNCOUNT_Assign:

LPARAMETERS vNewVal
*To do: Modify this routine for the Assign method
SET TALK OFF
IF m.vNewVal=-1
m.vNewVal=0
ENDIF
THIS.ColumnCount = m.vNewVal

После чего где SET TALK OFF ни ставлю (кроме как в этом методе), выводится как по ? значение ColumnCount на экран или активную форму. А как можно при таком подходе где-то выше по иерархии поставить SET TALK OFF?
...
Рейтинг: 0 / 0
12.10.2007, 15:16
    #34865457
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
Вот тут и оставь его.
Мне тоже пришлось в своем классе колонки в его Init воткнуть SET TALK OFF.
Иначе, в формах с приватными сессиями вылезает текст на экран.
Это BUG VFP. Init колонки своего класса происходит ДО события LOAD формы, где и стоял первоночально SET TALK OFF.
С уважением, Алексей
...
Рейтинг: 0 / 0
12.10.2007, 15:19
    #34865470
AMorkovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
Хорошо. Спасибо!
...
Рейтинг: 0 / 0
12.10.2007, 16:50
    #34865837
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
авторInit колонки своего класса происходит ДО события LOAD формы

не правда!

последовательность для формы scx
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DATAENVIRONMENT.OPENTABLES
DATAENVIRONMENT.BEFOREOPENTABLES
FORM.LOAD
INIT for each cursor in the DataEnvironment
DATAENVIRONMENT.INIT
INIT for each control in the form
FORM.INIT
FORM.SHOW
FORM.ACTIVATE
FORM.REFRESH
WHEN for 1st control in TabOrder
GOTFOCUS for 1st Control in TabOrder (if it has one)



авторЭто BUG VFP. Init колонки своего класса происходит ДО события LOAD формы
укажите на ошибку
...
Рейтинг: 0 / 0
12.10.2007, 16:58
    #34865869
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
...
Рейтинг: 0 / 0
12.10.2007, 21:45
    #34866321
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
Тот порядок событий, который вы привели и который используется в вашем примере соответствует документации и соответствует 99% наблюдаемого мною поведения событий в VFP.
А вот на 1% процент приходится наблюдаемые мною отклонениея от стандартного поведения.
Закономерность я не вывел.
Вот, например, сейчас я такой Bug наблюдаю, когда форма запускается через DO FORM. Сама форма создана на основе класса, который находится в vcx файле. Класс содержит PageFrame и GRID на его первой странице c 2 колонками моего класса колонки, определение которого расположено в prg файле. В форме, наследуемымой из этого класса, визуальными средствами редактирования добавлены еще 7 колонок. Так вот в этом случае последовательность событий такова:
1. Сначала возникают события INIT 7 колонок, которые были добавлены в дизайнере формы !!!! (Вот так !!!)
2. Затем возникает событе LOAD формы.
3. И только затем возникают события INIT 2 колонок, которые есть в классе от которого "пророщена" моя форма !!!! и далее события INIT всех остальных объектов формы, добавленные в неё в дизайнере формы.
Вот такая лажа. И в INIT этих колонок (которое возникает ДО Load формы и до SET TALK OFF в нем) у меня ест код, который и сопровождается выводом не нужной информации на экран, которая должна "давится" SET TALK OFF.
Если не верите, то могу прислать свой код, но это действительно так.
С уважением, Алексей.
...
Рейтинг: 0 / 0
12.10.2007, 22:10
    #34866338
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
Сделайте тестовый пример. Как-то мне не верится, что Init-объектов может быть выполнен ДО LOAD-контейнера. Что они загружать-то будут?
...
Рейтинг: 0 / 0
15.10.2007, 11:26
    #34868287
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
ВладимирМСделайте тестовый пример. Как-то мне не верится, что Init-объектов может быть выполнен ДО LOAD-контейнера. Что они загружать-то будут?
Так и сделаю, но в выходные. Сложно "выдернуть" класс из большой библиотеке.
С уважением, Алексей
...
Рейтинг: 0 / 0
15.10.2007, 20:15
    #34870211
AMorkovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
К ВладимирМ. При SET STATUS BAR ON вроде все нормально, а вот почему так? Пример прилагаю, извините, что ДУ ФОРМ, немногожко время поджимает, но тут очевидно срабатывание ЛОАД формы после.
...
Рейтинг: 0 / 0
16.10.2007, 10:02
    #34870677
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
в Вашем примере метод лоад формы
стартует как и положено раньше инитов контролов

иниц-я грида неверная,
т.к. описанные своими классами колонки и хедеры, нужно подключать
через св-ва мемберкласс грида, а не придумывать шаманства на пустом месте
...
Рейтинг: 0 / 0
16.10.2007, 10:34
    #34870784
AMorkovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
Спасибо. Да, пока не очень правильно.
...
Рейтинг: 0 / 0
16.10.2007, 10:37
    #34870797
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
2AMorkovka считаю, что давать Вам советы, видя Ваши исх-е коды в таком виде -
просто бесполезное занятие, т.к. Вы заниметесь метанием набора
универс. костылей в различные точки исходников,
вместо лог-го построения классов и ипс-я методов и принципов ООП

Вы задаете вопросы на форуме, и дальше вставляете эти костыли в
Ваш код, не понимая какой рез-т будет в конечном виде, ... так, что извините

классы начинают разрабатывать тихим сапом, постепенно наследуя и оборачивая,
создавая какие-то сущности, при этом максим-но стараясь не допустить ош-к
на начальном этапе разр-ки

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

костыли навставлять можно ...
и советов надавать можно, но смысла никакого я не вижу абсолютно ...
...
Рейтинг: 0 / 0
16.10.2007, 16:16
    #34872227
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где поставить SET TALK OFF?
AMorkovkaПри SET STATUS BAR ON вроде все нормально, а вот почему так?

Потому что в этом случае надо выполнить две настройки:

Код: plaintext
1.
2.
SET TALK OFF
SET TALK WINDOW

SET TALK выводится как раз в Status Bar, а если он отключен, то в текущее активное окно. Вторая настройка как раз и отключает вывод в текущее окно, которое и является созданной формой.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Где поставить SET TALK OFF? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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