Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как воткнуть методы в объект класса Empty? / 25 сообщений из 45, страница 1 из 2
28.09.2013, 08:58
    #38410597
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
Псевдоним ЛДПР намекнул недавно, что знает, но не сказал, как.
А ведь очень желательно. И чтоб вызывать эти методы набором имени переменной объекта и через точку - именем метода: Obj.Method(). Т.е., традиционно, без извращений.
...
Рейтинг: 0 / 0
28.09.2013, 15:51
    #38410703
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
Rostislav D. Kudryashov,

Ребята никто не спрашивал как? :))

почти все файлы в VFP это таблицы только с разными расширениями в том числе и библиотеки (vcx) (вся информация об этом доступна в хелпе)

в приведенном мной примере я создал обычный объект custom с именем pattern отредактировал его как хотел в плане методов
после открыл библиотеку как таблицу

Код: c#
1.
2.
use _test.vcx && с обаятельным указанием расширения
browse last



нашел класс objname = pattern, platform=windows

изменил поля class, baseclass c custom на empty
обнулил поле properties
...
Рейтинг: 0 / 0
28.09.2013, 16:09
    #38410712
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПР, спасибо. Буду пробовать. Может и пригодится. Но вообще, здорово!
...
Рейтинг: 0 / 0
30.09.2013, 18:02
    #38412179
thunder2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПРRostislav D. Kudryashov,

в приведенном мной примере я создал обычный объект custom с именем pattern отредактировал его как хотел в плане методов
после открыл библиотеку как таблицу

Код: c#
1.
2.
use _test.vcx && с обаятельным указанием расширения
browse last



нашел класс objname = pattern, platform=windows

изменил поля class, baseclass c custom на empty
обнулил поле properties
За что ты так надругался на дедушкой Фоксой ? ))) Обманщик !
...
Рейтинг: 0 / 0
30.09.2013, 21:13
    #38412352
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПРизменил поля class, baseclass c custom на empty
обнулил поле properties
И чего выиграл по сравнению с custom ?
...
Рейтинг: 0 / 0
30.09.2013, 21:46
    #38412368
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
Dima T

Из хелпа
Особенность класса заключается как в его быстрой инициализации, так и в его быстром

удалении, что связано с его структурой.
...
Рейтинг: 0 / 0
30.09.2013, 21:57
    #38412372
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
Dima T, класс Empty имеет состав свойств и методов, полностью определяемый пользователем. Безо всяких предопределений.
И одному вопрошателю форума как раз приспичило иметь такой класс для управления жизнью записи таблицы, чтоб в нём были поля по всем полям записи таблицы. И на его беду в его таблице было поле Name, а поле Name в объекте Custom никак не соглашается принимать пустые значения.
Эта у него была идея-фикс, вместо того чтоб просто встроить поле-объект Empty в объект Custom - по принципу агрегирования.
Но раз такая охота пуще неволи - получи желаемое.
...
Рейтинг: 0 / 0
30.09.2013, 22:12
    #38412387
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
Rostislav D. KudryashovИ одному вопрошателю форума как раз приспичило иметь такой класс для управления жизнью записи таблицы, чтоб в нём были поля по всем полям записи таблицы. И на его беду в его таблице было поле Name, а поле Name в объекте Custom никак не соглашается принимать пустые значения.

А вопрашатель не подумал что у него могут быть поля с именами методов класса ?

После 25 лет на фоксе - я, хоть и знал что ковырять vcx файлы можно, но в силу ударивших меня граблей, связанных с опытом "экстремального" кодинга, уже бы точно такой изврат использовать, в коммерческой разработке, не стал.
Хотя вопрашатель, до этого еще, видимо, не допетрил
...
Рейтинг: 0 / 0
01.10.2013, 00:46
    #38412462
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
pivaно в силу ударивших меня граблей, связанных с опытом "экстремального" кодинга, уже бы точно такой изврат использовать, в коммерческой разработке, не стал

Не знаю что там у вас за грабли но я использую с 2009 года в "коммерческой разработке" и ничего живой
Я представляю что вы скажете на screen во вложении.


Dima TИ чего выиграл по сравнению с custom ?
Я ничего, а что должен был ?
...
Рейтинг: 0 / 0
01.10.2013, 08:28
    #38412533
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПРDima TИ чего выиграл по сравнению с custom ?
Я ничего, а что должен был ?
Тогда непонятно зачем лишние телодвижения с ручным ковырянием VCX`ов
...
Рейтинг: 0 / 0
01.10.2013, 09:56
    #38412595
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
Dima T Тогда непонятно зачем ...
Если интересует практическая часть применения то pattern это реальный класс на основе Empty плотно используемый мной при разработке, в предыдущем моем посте на скрине виден cursoradapter c кучей вложенных коллекций так вот почти все они содержат в себе объекты на основе pattern

Я его использую там где custom много а Empty мало просто надоело постоянно писать код типа
Код: c#
1.
 addproperty(object,name,value) 

и все возможные его интерпретации, а также перебирать не именованную коллекцию для поиска и удаления одного из ее "empty" объектов изначально имея ссылку на этот самый "empty" объект.
...
Рейтинг: 0 / 0
01.10.2013, 10:04
    #38412608
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПР
Можно подробнее про эти ваши классы, что на картинке.

piva
Видать, сильно тогда вас ударило ...
...
Рейтинг: 0 / 0
01.10.2013, 13:18
    #38412983
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
sg12Можно подробнее про эти ваши классы, что на картинке.
Что именно интересует порядок создания того го рода класса или его предназначение
...
Рейтинг: 0 / 0
01.10.2013, 14:52
    #38413144
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПРsg12Можно подробнее про эти ваши классы, что на картинке.
Что именно интересует порядок создания того го рода класса или его предназначение

Непонятно с Коллекциями, сама идея взаимодействия - раз они вложены, значит должны существовать их родители.
И этот объект Query комплектуется один на весь проект, или каждый раз индивидуально?
У вас ведь AddProperty программно.
Т.е. ваш CursorAdapter довольно универсально насыщен, и в нем вся суть, а pattern только примамбасы.
...
Рейтинг: 0 / 0
01.10.2013, 15:45
    #38413239
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
На скрине я показал что в объекты которые оприоре не могут содержать дочерних объектов типа cursoradapter можно всунуть как не визуальные так и визуальные классы и спокойно редактировать их методы и свойства в стандартном редакторе свойств VFP

sg12 сама идея взаимодействия - раз они вложены, значит должны существовать их родители

В том и прикол что у всех показанных объектов конечный родитель это cursoradapter и к нему можно обратится из любого вложенного в него объекта через вызов соответствующего количества раз свойства parent т.е. стандартным способом

Если говорить о конкретном примере то весь это огород позволяет иметь динамически настраиваемый cursoradapter

sg12 Query комплектуется один на весь проект
Query это SQL parser вложенный как дочерний объект cursoradapter(а) который разбирает строку запроса SelectCmd на коллекции Fields,From,Where,Tables ... , а вот уже в коллекциях содержатся объекты (Pattern)


как пример: Tables содержит Pattern(ы) Table которые создаются
Createobject("Pattern","Name;TableSource;TableSourceType;Buffering;Tag")

Изменяя свойства объектов в соответствующих коллекциях я могу быстро изменить весь запрос не говоря уже о изменении условия выборки или упорядочивания
...
Рейтинг: 0 / 0
02.10.2013, 09:32
    #38413840
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
ЛДПР

Немного прояснилось, интересные у вас решения.
Хотя со строкой разбора без кодов довольно туманно.

Непонятно, где вы устанавливаете параметры-свойства.
Насколько можно вас понять, для этого вы открываете редактирование с переименованием классов.
Может удобнее вынести установку свойств объектов в отдельный Custom, где и устанавливать собственно все параметры.
Тогда необходимость в изменении объектов отпадет.
...
Рейтинг: 0 / 0
02.10.2013, 11:06
    #38413991
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
авторнашел класс objname = pattern, platform=windows

изменил поля class, baseclass c custom на empty
обнулил поле properties

не удалось повторить фокус ...: "Object class is invalid for this container" при попытке открыть его в class designer
...
Рейтинг: 0 / 0
02.10.2013, 13:49
    #38414244
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
sg12Насколько можно вас понять, для этого вы открываете редактирование с переименованием классов.
NSFuimus1 не удалось повторить фокус ...: "Object class is invalid for this container" при попытке открыть его в class designer


Редактировать такие классы как Empty,Header через стандартный Fox(вый) редактор не получится так как и до "танцев с бубном" над ними этого сделать нельзя было, если очень хочется то надо провести обратные действия с переименованием.

Что же косается остальных то это вполне реально. Я так понимаю это просто "ход конем" который не закрыли разработчики Fox(а) и что меня радует больше всего что уже навряд ли когда закроют

Суть данного хода заключается в том что созданный класс условно назовем его "не такой как все" изначально отредактировать нельзя, а вот его наследника можно но надо помнить о том что наследника нужна изначально создать до того как класс станет "не такой как все"

sg12Может удобнее вынести установку свойств объектов в отдельный Custom, где и устанавливать собственно все параметры.Тогда необходимость в изменении объектов отпадет.
Если вы про танцы с бубном над классами то из вышесказанного ясно что это делается один раз при разработке объектной структуры класса который как мы помним "не такой как все"
...
Рейтинг: 0 / 0
02.10.2013, 14:05
    #38414270
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
авторСуть данного хода заключается в том что созданный класс условно назовем его "не такой как все" изначально отредактировать нельзя, а вот его наследника можно но надо помнить о том что наследника нужна изначально создать до того как класс станет "не такой как все"
шалость удалась (с) ... но в дизайнере такой потомок всЁ равно изображает все методы и свойства от custom + свойство baseclass кажет тот же custom ... как бы это почистить?
...
Рейтинг: 0 / 0
02.10.2013, 14:24
    #38414304
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
NSFuimus1,

baseclass у наследника не изменил

в приложении пример
...
Рейтинг: 0 / 0
02.10.2013, 14:49
    #38414342
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
изменил, разумеется ... custom на _pattern в поле BaseClass потомка ... вложение смогу посмотреть наверное тока дома
...
Рейтинг: 0 / 0
02.10.2013, 15:02
    #38414373
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
NSFuimus1изменил

Вам оттуда виднее

в примере редактируется класс "_de" но если перед ним попытаться отредактировать родителя "__de" то после ошибки надо выполнить clear all [classlib] так как Fox корректно не закрывает класс родителя
...
Рейтинг: 0 / 0
02.10.2013, 15:16
    #38414402
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
не вижу какой класс вы объявили наследником от pattern?! - поле baseclass нигде не содержит "pattern" ... чего я не понял (делаю не так)?
...
Рейтинг: 0 / 0
02.10.2013, 15:35
    #38414440
ЛДПР
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
NSFuimus1,


pattern это пример класса на основе Empty

авторРедактировать такие классы как Empty,Header через стандартный Fox(вый) редактор не получится так как и до "танцев с бубном" над ними этого сделать нельзя было, если очень хочется то надо провести обратные действия с переименованием.
...
Рейтинг: 0 / 0
02.10.2013, 15:45
    #38414468
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как воткнуть методы в объект класса Empty?
это я понял + пошОл дальше: для имеющихся классов в библиотеке созданных заранее как "custom" указал в качестве родительского класса "_pattern" в поле BaseClass ... закрыв библиотеку (dbf) открыл проект где она используется, увидел _pattern в библитеке, открыл его потомков и наблюдаю все наследство от "custom" ... вопрос был про то что можно ли избавиться от этого наследства
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как воткнуть методы в объект класса Empty? / 25 сообщений из 45, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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