powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как воткнуть методы в объект класса Empty?
20 сообщений из 45, страница 2 из 2
Как воткнуть методы в объект класса Empty?
    #38414561
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NSFuimus1 + пошОл дальше:
это прелестно

Вы в моем примере видели у класса "_de" "наследство" от container
давайте простенький пример того что вы делаете так будет проще
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38414774
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
согласен - это прелестно (с) добиться от вас внятного ответа весьма сложно ... скажите хотя бы что такое вот "наследование" как я описал типа "нетипично" (неправильно?) и я буду копаться дальше со своей библиотекой и вашей ... примеров никаких не будет ... скажу лишь что проект - фоксовый ком-сервер и я пытаюсь понять сможет ли описанный вами подход "облегчить" его ибо custom мне в нем совершенно излишний
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38414823
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NSFuimus1добиться от вас внятного ответа весьма сложно ...
NSFuimus1как я описал типа "нетипично"

это уже напоминает разговор слепого с немым

Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью

NSFuimus1примеров никаких не будет
а жаль

Если есть желание можете описать что вы хотите получить в конечном итоге
потому что из ходя из моей практики в унаследованный от empty класс можно всунуть свойства, методы,события и даже объекты но все это никак не влияет на возможность у полученного класса редактироваться class dessinger ее (возможности) как не было так и не будет
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38414852
NSFumus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чорт ... ещё раз ... 1. я понял про редактирование в class designer "базового" класса от empty 2. я понял как создавать от него потомков: мы должны предварительно создать классы от доступных базовых - я создал от custom - и затем отредактировать библиотеку как таблицу, изменив у нужных классов поле baseclass, подставив в него имя нашего класса, унаследованного от empty - в моём случае я поменял "custom" на "pattern" ...
И вот теперь открываю в class designer этих потомков от pattern и ожидаю увидеть в панели property пустые закладки событий, свойств и методов - ведь мы унаследовались в итоге от empty! - но вижу ровно то что видел когда этот класс был ещё унаследован от custom и даже в свойстве baseclass по-прежнему написано custom ... и теперь я снова задаю этот вопрос (в 3 раз?) это нормально? так и должно быть?
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38414911
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NSFumus1я понял
... поверь мне не понял

Твои потомки открываются в class desinger только по той причине что у него (потомка) не изменен baseclass (о чем я тебе уже говорил) поэтому они открываются в class desinger и потягивают свойства и методы объекта указанного в baseclass

если бы ты все танцы с бубном провел правильно то ни один из классов унаследованных от empty любой вложенности не открылись бы class desinger
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38414984
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мозги ... это чьи слова:
авторСуть данного хода заключается в том что созданный класс условно назовем его "не такой как все" изначально отредактировать нельзя, а вот его наследника можно но надо помнить о том что наследника нужна изначально создать до того как класс станет "не такой как все"?
дык можно в class designer открыть потомка от pattern который является потомком от empty?
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38414985
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а! вроде дошло ... т.е. собственно и потомка надо создавать от pattern который еще не empty до того он станет empty ... да, делал не так ... извини торможу ... попробую отпишусь
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415027
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну чтож ... вроде всЁ сделал правильно, убедился что и потомка от pattern-а невозможно открыть class designer и это сильно разочаровывает, т.к. единственный способ отладки ком-сервера у меня это логирование и соответственно бесконечная расстановка/удаление команд на логирование в подозрительных местах и делать это как-то вне class designer ... ну его нафиг ... осталось прояснить всЁ-таки фразу авторсозданный класс ... изначально отредактировать нельзя, а вот его наследника можно ... т.е. речь идет не о class designer? а о чЁм?
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415057
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NSFuimus1,

Здуреть можно это не я смутно "выражовываюсь" а вы избирательно читаете

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

Что же косается остальных то это вполне реально

NSFuimus1и это сильно разочаровывает
Мне так жаль, это моя вина ...

Написание процедуры которая их открывает и корректно закрывает у меня заняло 1.3 минуты ...
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415102
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да нет, просто "слышал то, что хотелось услышать" ... твой сарказм неуместен ИМХО ... вообщем спасибо за идею, я думаю попробую к ней вернуться попозжа и посмотреть что получится с реальными классами в ком сервере ... сенкс еще раз
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415161
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛДПР

Вы выше привели пример создания Pattern:
Createobject("Pattern","Name;TableSource;TableSourceType;Buffering;Tag")

Но, к примеру, если изменить эту строку вызова так:
oCustom.DoCreate("Name;TableSource;TableSourceType;Buffering;Tag")

а в класс oCustom в метод DoCreate() перенести из Init:

Lparameters tcProperties
LOCAL loEmpty
loEmpty = CreateObject("Empty")

If Vartype(m.tcProperties)="C"
Local laProperties[1],lcLine
If Alines(m.laProperties,m.tcProperties,5,";")>0
For Each m.lcLine In m.laProperties
AddProperty(loEmpty,Alltrim(Getwordnum(m.lcLine,1,"="),1,Chr(9),Chr(32)))
If Occurs("=",m.lcLine)>0
This.&lcLine
Endif
Endfor
Endif
Endif

то Pattern превратится в простое Empty и в этих преобразованиях классов отпадет необходимость.

И эти Empty можно добавлять не к коллекциям, а непосредственно к этому oCustom, т.е. он заменит все коллекции.

Или, вообще, все это перенести в CursorAdapter, у него тоже есть метод AddProperty.
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415367
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg12

Я надеюсь все мы прекрасно понимаем что каждый выбирает способ реализации той или иной задачи для себя сам и это дело сугубо личное

В итоге (если оба или более подходов работают) можно сравнить только достоинства и недостатки их (подходов)

Если есть желания это обсудить

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

Пожалуйста.

В CursorAdapter это будет выглядеть так:
Вызов метода:
oCursorAdapter.DoCreate(lcEmptyName,"Name;TableSource;TableSourceType;Buffering;Tag")
* lcEmptyName - имя вида 'oEmptyTable1','oEmptyTable2'

Метод DoCreate() в CursorAdapter:
Lparameters tcEmptyName,tcProperties

oCursorAdapter.AddProperty(tcEmptyName,CREATEOBJECT('Empty'))

* Далее ваш код
If Vartype(m.tcProperties)="C"
Local laProperties[1],lcLine
If Alines(m.laProperties,m.tcProperties,5,";")>0
For Each m.lcLine In m.laProperties
AddProperty(oCursorAapter.&tcEmptyName,Alltrim(Getwordnum(m.lcLine,1,"="),1,Chr(9),Chr(32)))
If Occurs("=",m.lcLine)>0
This.&lcLine
Endif
Endfor
Endif
Endif

Из ваших классов останется только CursorAdapter (Receiver мы не касались), все остальные ваши кодовые решения остаются в силе.
Изменения в строках обращения к объектам Empty несложные.
Если нужно обобщить для всех коллекций, кроме Table, то это через DO CASE c еще одним параметром tcCase (что в свое время вызвало нервный тик у некоторых ГУРУ)
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415653
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛДПР

Продолжим загибать пальцы.
Ведь даже в этих объектах Empty нет необходимости.

Параметры для запроса вы где-то создаете.
Потом эти параметры перекачиваете в свойста объектов.
Затем оттуда извлекаете для формирования строки запроса.
Но ведь эти параметры можно брать одноразово непосредственно оттуда, где вы их формируете, одним шагом-вызовом - зачем нужны лишние перекачивания.
Т.е. эти параметры должны формироваться в определенном методе (можно назвать их метаданными), о чем я и упоминал ранее.
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38415899
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg12,

Я ставил перед собой задачу иметь возможность редактировать объектную модель запроса изначально заданную строкой в cursoradapter.selectcmd

при этом с максимальным комфортом в class desinger

пример кода редактирования объектной модели запроса (вырезан из одного из вложенных объектов в cursoradapter)m.loTable = This.Parent.Query.Tables.New()
Store LOWER(This.Alias) To m.loTable.Name,m.loTable.TableSource
This.Parent.Query.Tables.Add(m.loTable,m.loTable.Name)

m.loLastJoins = This.Parent.Query.From(This.Parent.Query.From.Count).Joins
m.loJoin = m.loLastJoins.New()
m.loJoin.Enabled = .T.
m.loJoin.Table = m.loTable
m.loJoin.Type = "inner"
m.loJoin.Level = 1

m.loCondition = m.loJoin.Conditions.New()
m.loCondition.Enabled = .T.
m.loCondition.Field = This.Alias+".uniqueid"
m.loCondition.ValueSource = This.Parent.Query.Fields("uniqueid").Table.Name+"."+This.Parent.Query.Fields("uniqueid").FieldSource
m.loCondition.Criteria = "=="

m.loJoin.Conditions.Add(m.loCondition)
m.loLastJoins.Add(m.loJoin)

То есть мне абсолютно не важно какой запрос записан в selectcmd я корректно могу его видоизменить и он останется рабочим

На счет тех конструкции которые вы предлагаете объект.свойство_объект они меня мало впечатляют так как от подобной практики я отказался давно и надолго в силу печальных способностей Fox(а) не подчищать их при не явном удалении и связанного с этим танцев с бубном

поэтому все разговоры про уход от emty in collection мне кажутся недостаточно аргументированными

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

Если честно, то я не вижу комфорта, даже со скидкой на туманные разъяснения.
Проблемы с подчищением можно решить создаванием каждый раз заново одного глобального объекта с его последующим уничтожением.
При ручном удалении не лениться PACK.
Что касается примера кода, то чем редактировать довольно большое количество свойств, проще вместо них формировать в том же коде несколько локальных переменных, с последующим отправлением их в строку запроса.
Или загонять их также в один глобальный объект Empty.
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38416002
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg12Проблемы с подчищением можно решить создаванием каждый раз заново одного глобального объекта с его последующим уничтожением.
При ручном удалении не лениться PACK.

Вы абсолютно не имеете представления о чем говорите

sg12Что касается примера кода, то чем редактировать довольно большое количество свойств, проще вместо них формировать в том же коде несколько локальных переменных, с последующим отправлением их в строку запроса.
Или загонять их также в один глобальный объект Empty

опять разговор слепого с глухим
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38416049
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В свое время, я плотно пытался автоматизировать SELECT ... (впрочем, как и многие), и был также разочарован, что это оказалось

напрасной тратой времени.
Все эти разработки радуют только самих разработчиков.

Вот упрощенно схема:
Где-то как-то задаем параметры:
lcTables = 'tables'
lcFields = 'fields'
...
Что-то куда-то перегоняется, что-то во что-то преобразуется.
...
Собираем параметры:
lcSelect = 'Select ' + lcFields + ' FROM ' + lcTables ...
Собственно выполняем запрос, из-за чего весь сыр-бор:
&lcSelect

И в чем преимущество перед обычным:
SELECT fields FROM tables ...
...
Рейтинг: 0 / 0
Как воткнуть методы в объект класса Empty?
    #38416083
ЛДПР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg12,

Такое ощущение что я тебя уговариваю делать так же

Позвольте мне процитировать вам мой пост написанный ранее

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

Картинка у вас красивая, вот и заинтересовало.
Ценность вашей разработки не в классах, глупости это, трата времени - в локальных переменных проще.
Другое - строку разбора вы себе написали хорошую, детальную.
И комфортно вам не от этих ваших классов, а то, что вы типизировали Select-ы.
Типизация позволяет комфортно работать с запросами.
Не думаю, что и с обычным синтаксисом Select у вас проблемы.
А большинство, и не только здесь, бросаются на Select-ы, как на амбразуру, хотя в основном практические запросы это типовые решения.
...
Рейтинг: 0 / 0
20 сообщений из 45, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как воткнуть методы в объект класса Empty?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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