Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Enabled / 5 сообщений из 5, страница 1 из 1
08.06.2009, 02:01
    #36030183
FoxUserVP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enabled
Добрый вечер.
Проблема заключается в следующем :
Имеется форма-справочник на ней кнопка сохранить(Enabled=.F.). Дак вот... Допустим откроем Форму1, на ней имеется кнопка открытия формы-справочника, после открытия формы-справочника кнопка сохранить стает Enabled=.T.
Вот код:

Форма-Справочник.Init()
IF TYPE("_VFP.Forms('Форма1)")="O"
THISform.Кнопка.enabled=.T.
ENDIF

Все работает. Вопрос в следующем: Как можно переписать этот код, таким образом, что если я помещю его в класс он будет работать для всех форм(т.е. Чтобы в Init-форм (их X) постоянно не прописывать, а прописать в классе и он работал бы для всех форм).
...
Рейтинг: 0 / 0
08.06.2009, 10:19
    #36030423
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enabled
От базового класса создать "свой класс" в котором прописать

Код: plaintext
1.
2.
3.
procedure init
IF TYPE("_VFP.Forms('Форма1)")="O"
THISform.Кнопка.enabled=.T.
ENDIF

В классах наследниках от "своего класса" :

- если есть код в init, то вызывать код родительского "своего класса" через DOEFAULT

- если кода нет, то код от "своего класса" сработает и так.
...
Рейтинг: 0 / 0
08.06.2009, 23:49
    #36032116
FoxUserVP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enabled
PaulWist,
Спасибо за консультацию!
Можно поподробнее про DOEFAULT? Заранее благодарен!
...
Рейтинг: 0 / 0
09.06.2009, 11:33
    #36032672
pitermax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enabled
в начале init пишешь dodefault, а затем свой код
...
Рейтинг: 0 / 0
09.06.2009, 12:24
    #36032854
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enabled
DoDefault() - это функция, которая вызывает тот же самый метод класса-родителя.

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

Вам надо просто передать параметр в init-справочника, по значению которого вы и будете принимать решение об активизации кнопок на форме

Код: plaintext
1.
2.
3.
4.
5.
* Init формы справочника
LPARAMETERS tlEnabled
IF tlEnabled = .T.
	THISform.Кнопка.enabled=.T.
ENDIF

Соответственно, вызов справочника из формы примет вид

Код: plaintext
DO FORM Справочник.scx WITH .T.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Enabled / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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