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

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

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

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

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

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

- если кода нет, то код от "своего класса" сработает и так.
...
Рейтинг: 0 / 0
Enabled
    #36032116
FoxUserVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,
Спасибо за консультацию!
Можно поподробнее про DOEFAULT? Заранее благодарен!
...
Рейтинг: 0 / 0
Enabled
    #36032672
pitermax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в начале init пишешь dodefault, а затем свой код
...
Рейтинг: 0 / 0
Enabled
    #36032854
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Enabled
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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