powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание и вызов формы на базе своего класса
5 сообщений из 5, страница 1 из 1
Создание и вызов формы на базе своего класса
    #36889135
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал класс формы для работы со справочниками. В методе Init формы единственный параметр - имя редактируемой таблицы. На форме пара кнопок и Grid.

Так вот, если открывать форму способом

oForm = CREATEOBJECT('frmsprclass', lcTableSQL)
oForm.Show()

то она только менькнёт на экране, а если на базе класса создать .SCX-файл и запускать

DO FORM frmspr WITH lcTableSQL, то запускается и работает нормально.

READ EVENTS находится в конце стартового .PRG-файла
CLEAR EVENTS в процедуре закрытия

1. В чем может быть дело ?
2. Есть ли вообще какая-нибудь разница между двумя этими способами запуска формы ?
...
Рейтинг: 0 / 0
Создание и вызов формы на базе своего класса
    #36889319
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. должно натолкнуть на мысль
Код: plaintext
1.
2.
3.
4.
5.
_screen.addProperty("uuu")
_screen.uuu = CREATEOBJECT('frmsprclass', lcTableSQL)
if vartype(_screen.uuu)="O"
   _screen.uuu.Show()
endif

2. да, читать все про отличия vcx и scx форм
...
Рейтинг: 0 / 0
Создание и вызов формы на базе своего класса
    #36889413
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предложенный код работает, спасибо.
Но не на какие мысли не натолкнул))

Всё-таки хотелось бы услышать про различия. Везде при обсуждении этого мелькают расплывчатые фразы о "неудобстве масштабируемости и сопровождении" без упоминания конкретных возможных неприятностей при использовании .SCX.

Ну добававятся, допустим, в моём проекте три новых справочника. Для их вызова нужны будут команды
DO FORM frmspr WITH lcTableSQL1
DO FORM frmspr WITH lcTableSQL2
DO FORM frmspr WITH lcTableSQL3

В чем трудности ??
...
Рейтинг: 0 / 0
Создание и вызов формы на базе своего класса
    #36889522
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swkxПредложенный код работает, спасибо.
Но не на какие мысли не натолкнул))
oForm - переменная-объект, область видимости переменной заканчивается, она автоубивается, поэтому форма исчезает.
swkxВсё-таки хотелось бы услышать про различия. Везде при обсуждении этого мелькают расплывчатые фразы о "неудобстве масштабируемости и сопровождении" без упоминания конкретных возможных неприятностей при использовании .SCX.

Ну добававятся, допустим, в моём проекте три новых справочника. Для их вызова нужны будут команды
DO FORM frmspr WITH lcTableSQL1
DO FORM frmspr WITH lcTableSQL2
DO FORM frmspr WITH lcTableSQL3

В чем трудности ??
Завтра тебе потребуется на одном из 3-х справочников что-то добавить, например кнопку. В случае с классом - унаследуешь frmsprclass и добавишь в дочернем классе эту кнопку. В случае с формой придется либо код городить для прятанья кнопки, или делать копию формы и в дальнейшем вносить общие изменения в обе копии.

Лично я предпочитаю промежуточный вариант: есть базовый класс формы справочника в VCX (где прописано все что касается всех справочников), на основе него делается форма для конкретного справочника, а в форме прописываются особенности этого справочника.

PS Однозначного ответа как правильно - нет. У каждого подхода есть свои плюсы и минусы.
...
Рейтинг: 0 / 0
Создание и вызов формы на базе своего класса
    #36889663
swkx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание и вызов формы на базе своего класса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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