:: Visual Foxpro, Foxpro for DOS
Как изменить экземпляр класса?
lemenev
Автор

Сообщений: 112
Дата регистрации: 23.06.2022
Помогите разобраться.
Я создаю и отлаживаю форму, которую хочу сделать типовой с помощью команды
CREATE FORM
Из системного меню File, выбираю пункт Save As Class.
Сохраняю как класс MyFormClass в библиотеку MyFormLib.

В дальнейшем я могу корректировать этот класс:
MODIFY CLASS MyFormClass OF MyFormLib
Могу создавать экземпляры этого класса:
Form1 = NEWOBJECT( 'MyFormClass', 'MyFormLib' )
или
SET CLASSLIB TO MyFormLib
Form2 = CREATEOBJECT('MyFormClass')
Но вот как редактировать экземпляры этого класса, чтобы придать им уникальные черты?
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
lemenev
Но вот как редактировать экземпляры этого класса, чтобы придать им уникальные черты?
Менять в рантайме созданный объект? Хотите заняться модификацией программы прямо во время ее выполнения?
Наследованием и полиморфизмом воспользоваться не предлагать?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
CREATE CLASS ClassName | ? [OF ClassLibraryName1 | ?] [AS cBaseClassName [FROM ClassLibraryName2]]

Либо
В проекте встаем на библиотеку (именно на библу, а не класс).
Жмем Modify.
В новом окне выбираем класс источник.
Жмем New Class.
Вводим новое имя (при необх.и библиотеку).
....



Исправлено 1 раз(а). Последнее : Taran, 10.09.22 08:46
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Экземпляру класса можно добавлять объекты и свойства
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
Экземпляру класса можно добавлять объекты и свойства

Все верно.
Что еще вы умеете делать?
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lemenev
Автор

Сообщений: 112
Дата регистрации: 23.06.2022
ssa
Менять в рантайме созданный объект? Хотите заняться модификацией программы прямо во время ее выполнения?
Наследованием и полиморфизмом воспользоваться не предлагать?
Вовсе нет, мне не нужно модифицировать программу во время выполнения. Мне как раз и нужно было наследование, просто я не знал, как это реализовать.

Спасибо за объяснения Taran. У меня всё получилось. Т.е. в библиотеке классов получилось создать новый класс на основе старого.

[attachment 36399 XX.png]

А вот как дальше? Я могу править новый класс, а затем в программе на основе нового класса создавать объект с помощью NEWOBJECT или CREATEOBJECT или я могу на основе нового класса создать форму и править её?



Исправлено 1 раз(а). Последнее : lemenev, 10.09.22 13:49
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
lemenev
Спасибо за объяснения Taran. У меня всё получилось. Т.е. в библиотеке классов получилось создать новый класс на основе старого.

[attachment 36399 XX.png]

А вот как дальше? Я могу править новый класс, а затем в программе на основе нового класса создавать объект с помощью NEWOBJECT или CREATEOBJECT или я могу на основе нового класса создать форму и править её?

Вообще-то, с классами работают в Меню, пункт Tools/Class Browser.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
lemenev
А вот как дальше? Я могу править новый класс, а затем в программе на основе нового класса создавать объект с помощью NEWOBJECT или CREATEOBJECT или я могу на основе нового класса создать форму и править её?

Лично я никогда не использую формы. Использую только классы форм. Поскольку это более верно с точки зрения ООП.
Плюс прочие визуальные классы должны храниться в библиотеке, так почему бы в эту библу не положить и класс формы.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Taran

Лично я никогда не использую формы. Использую только классы форм. Поскольку это более верно с точки зрения ООП.
Плюс прочие визуальные классы должны храниться в библиотеке, так почему бы в эту библу не положить и класс формы.

Научиться работать с формами тоже не помешает, это часть ООП.
Невизуальные объекты тоже могут применимы с формами.



Исправлено 1 раз(а). Последнее : lulgu, 10.09.22 14:16
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Строго говоря, вам с библиотеки базовых классов надо начинать тренироваться.
Оттуда осваивать то, что ssa посоветовал.



Исправлено 1 раз(а). Последнее : lulgu, 10.09.22 14:30
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Я создаю и отлаживаю форму, которую хочу сделать типовой с помощью команды

Есть в Option --> Forms возможность указать любимый класс формы. Я так делал формы на основе класса-формы. В этом элементе Option можно "навека" сохранить эту любимую форму (создаваемую в кнопке New), если нажать кнопку Set As Default (сохранится где-то... в реестре наверное). Если просто настроить, и нажать ОК, то на время текущего фоксового сеанса IDE будет такая автосоздавалка форм...
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
> Я создаю и отлаживаю форму, которую хочу сделать типовой с помощью команды
Есть в Option --> Forms возможность указать любимый класс формы. Я так делал формы на основе класса-формы. В этом элементе Option можно "навека" сохранить эту любимую форму (создаваемую в кнопке New), если нажать кнопку Set As Default (сохранится где-то... в реестре наверное). Если просто настроить, и нажать ОК, то на время текущего фоксового сеанса IDE будет такая автосоздавалка форм...

Для новичка с одним классом формы в учебных целях вполне приемлемый вариант.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
В "реале", оказалось, что IDE фокса VFP перестал устраивать. Хорошо, что задачи не слишком глобальные.
Фокс потерял поддержку (ятд незаслуженно, но тут "коммерция", типа хочешь получить хорошее - сделай это сам, не всегда верное в нашем мире утверждение, но...). Но поздно кулаками махать, жрем что есть.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Ты чем занимаешься, из полезного "обществу" ? )


Доб... ( Вот так, общаться с незнакомкамиыми людьми... ни ответа, ни привета.)



Исправлено 1 раз(а). Последнее : of63, 10.09.22 21:46
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lemenev
Автор

Сообщений: 112
Дата регистрации: 23.06.2022
of63
>Есть в Option --> Forms возможность указать любимый класс формы.
Спасибо, это то, что нужно.
Мне не нужно "навека" сохранять эту "любимую" форму вместо стандартной пустой. Вполне достаточно на время текущего фоксового сеанса.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Когда аппетит разыграется, то захочется два базовых класса: Форма списка и Форма редактирования.
Практически в любом приложении.
Тогда в сис.меню создать, либо по вызову горячей клавиши shortcut menu.
В котором пару или больше строк вида
CREATE CLASS ? OF ? AS cBaseClassName FROM ClassLibraryName2

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



Исправлено 1 раз(а). Последнее : Taran, 10.09.22 22:37
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Олега, как всегде нетривиален

() не воспринимайте системы VFP как машину, с отсутствем "ошибок", Это система с остановившейся системой отслеживания ошибок...

()/ Женщин - люблю



Исправлено 1 раз(а). Последнее : of63, 10.09.22 23:37
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
Олега, как всегде нетривиален

Олега как раз тривиален как всегда.
Нетривиален ТС.
Владея фоксом получше некоторых асов, он уж в которой теме выдает "наивные" вопросы, явно игнорируя ответы.
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
ЛЕМЕНЕВ, тут помогут, а не относящийся к делу блуд/сарказм не принимайте лично. Тут померяться обязательно надо, правда вряд ли это продуктивно.

Задавайте вопросы - ответы (пусть не сразу) - вы получите. И удачи Вам!


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как изменить экземпляр класса?
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Поделюсь еще тем старым опытом, когда глупые вопросы задавал Вадику (piva) - вот есть форма, а хочу отнаследоваться и на кнопку разный функционал.

1) CASE
2) еще раз наследоваться


Ну, Вадя навскидку говорил, мы вино пили.

Сегодня код стараюсь унифицировать - и параметрами. Ну тут Олег мега-тонны коды сейчас выложит, с обязательным m.

Лично мне венгерской нотации хватает, и неких правил при проектировании. Читабельность ниже, я против, но дело вкуса. А меня не переделать, не вчера стал писать. Хотя, согласен, есть ребята с бОльшими знаниями. Уверяю, у нас и это не могут осилить. Люди с удивлением узнают, что на Делфи форма - это класс. И компоненты тупо кидают, может писал. И так могут 100500 форм зафигачить, с одними кнопками. Ну не изучали люди ООП, что поделать...


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 36 (Гостей: 36)

© 2000-2024 Fox Club 
Яндекс.Метрика