:: Visual Foxpro, Foxpro for DOS
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Есть ООП, его возможностей мне хватает. А что не устраивает Вас?
Не устраивает? да все устраивает, каждый год все больше и больше, ОС улучшается, Фокс улучшался до какого-то года.
Не устраивает, что это сделано не в РФ, и что даже повторить то, что сделала команда VFP, в РФ не в состоянии никто, хотя это и уже смешное достижение.
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
wow1970

Сообщений: 29
Дата регистрации: 06.12.2017
Полиморфизм — слово греческого происхождения, означающее "многообразие форм" и имеющее несколько аспектов. Во время выполнения объекты производного класса могут обрабатываться как объекты базового класса в таких местах, как параметры метода и коллекции или массивы.

Что то страшно запутанное. Зачем нужно? Что даст сделать?
Можно конечно самому разобраться. Заинтересовали. Как это я без него обхожусь, может все значительно упростится при его использовании?

Это не это случайно?
nodefault
DoDefault()
CИмяКласса::CМетод
Выполняет родительский метод класса из метода подкласса.

Если нет, то полиморфизм меня не интересует (как и я его).
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Это демонстрация владения "ООП"? да им просто владеть, это всего лишь идея: давайте иметь набор "рыб", и средства их немного изменять.
Или слово "полиморфизм" означает что-то глубже?

Доб, да, "клонирование конструкций" (наследование) забыл добавить, без этого слова ООП не работает



Исправлено 1 раз(а). Последнее : of63, 13.12.17 01:12
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
wow1970

Сообщений: 29
Дата регистрации: 06.12.2017
ООП - способ мышления при написании программ.

Сделал контролы которые подсвечиваются. Порадовался.

Создал на его базе контрол 4 уровня и допер шо новый метод правнука более общий и подойдет ДАЖЕ отцу. Научил (отправил его на 1-й уровень) дедушку. Дедушка автоматом в свободное время обучил отца. Откатал и забыл. И не муляет мне этот метод в контролах 2,3,4.

Пример из жизни? Так мобильник. Онучек пользуется. Научил дедушку. Папку онучек не учил. Его обучил дедушка.

Я в другой ветке писал что визуально ничего не делаю. Даже форм. Все в прг.



Исправлено 4 раз(а). Последнее : wow1970, 13.12.17 09:43
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Нравится - значит разрабы (ООП и интерфеса к нему, в частности фокс) все правильно сделали ) В прг, так в прг, кому как удобнее, не шутка.
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
Аспид
...
Но сама задача не понятна. Пытался придумать зачем такое, и не смог толком.
...

Всё достаточно просто и прозрачно.

Ещё один пример (с настройками через метаданные, когда для разных форм-классов определяются свои подмножества M и N).

Разрешения для юзеров - кому что можно делать-видеть в интерфейсе.

Например, для юзеров определены права на действия:

- создать новый док
- создать по образцу
- редактировать док
- удалить док
- печать дока (или печать не всех, а определенных репортов для дока)
- из терминологии 1С, "проводить док".
итд

права на видимость объектов/контролов:
- видеть (Visible) цены, контрагентов, суммы (как в формах, так и в отчетах), типы документов итд
- ReadOnly/Enabled контролов
итд

У меня это реализовано так:

1. Права хранятся как таблички в БД.

2. Класс формы обращается к соотвествующей ХП для получения прав для формы передавая её Form.Name или синоним (вот тут получаем множества M и N).

Эта ХП проверяет:
- можно ли вообще юзеру спрашивать права
- можно ли для Form.Name или синонима отдавать права

3. Права получаются в виде курсора.

4. Формы вызываемые из "родительской" формы и связанные с ней логически наследуют права "родителя", те курсор прав передаётся "дочерним" формам в их приватные DS (курсор - XML - курсор).

Почему так сделано, в простом случае мы имеем форму списка документов/строк справочника и форму редактирования, но есть доки имеющие до 5-ти дочерних форм (те Мастер - Детали1 - Детали2 от Детали1 - Детали3 от Детали2 - итд).

Первое, как правило формы дочек являются наследниками прав "родителя".

Второе (пожалуй главное) количество прав соотвествует количеству родителей, те не надо прописывать в два/три раза больше прав для дочерних форм (есть конечно формы для которых всё таки необходимо прописывать права отличные от родителя).

Ну собственно где-то так.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Пашь +100500
Только к вопросу видимо не относится(
У тебя все в курсоре, и потому сам вопрос смысла не имеет!
(Где ты это хранишь, не имеет значения. Главное уже есть структурированные данные)
тут же... что то загадочное.
Если б Александр рассказал, думаю можно было изменив подход, найти элегантный способ, без кучи параметров.


------------------
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
Аспид
Только к вопросу видимо не относится(
У тебя все в курсоре, и потому сам вопрос смысла не имеет!

Дык, для чего я это "нарисовал", что бы Саня принципиально пересмотрел свою "нетленку", использование курсора решает практически все проблемы с передачей параметров.

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


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
PaulWist
правда у метода курсор - XML - курсор есть одна проблема
Это уже не существенно.
Вряд ли он будет повторять прямо твое. И задача не известна)
Я то что локально, храню в реестре.
И там этих проблем просто нет)


------------------
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
spinz
А что, в VFP реально есть ООП?
Есть. Реально.
spinz
Что там с полиморфизмом?
Ну как и для большинства динамически типизируемых языков. Все методы по сути параметрически полиморфны - принимают значения абсолютно любых типов, но внутри себя, заглядывая "внутрь" переданных параметров, могут ветвить логику обработки. А могут и не ветвить, хотя для примитивных типов это иногда сложно представить, но для объектов - по сути нет разницы какой тип у объекта для того чтобы его, к примеру, передать в другой метод, поместить в коллекцию или даже через типа-рефлексию AMEMBERS() "распечатать на экране". Да и для примитивных типов есть функции/команды, которые без проблем примут любой из типов. Классический пример - TRANSFORM() и команда ?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Igor Korolyov
Все методы по сути параметрически полиморфны - принимают значения абсолютно любых типов, но внутри себя, заглядывая "внутрь" переданных параметров, могут ветвить логику обработки.

А как насчет перегрузки, когда для разных типов параметров вызываются различные функции?



Исправлено 1 раз(а). Последнее : spinz, 13.12.17 15:05
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Igor Korolyov
spinz
А что, в VFP реально есть ООП?
Есть. Реально.
spinz
Что там с полиморфизмом?
Ну как и для большинства динамически типизируемых языков. Все методы по сути параметрически полиморфны - принимают значения абсолютно любых типов, но внутри себя, заглядывая "внутрь" переданных параметров, могут ветвить логику обработки. А могут и не ветвить, хотя для примитивных типов это иногда сложно представить, но для объектов - по сути нет разницы какой тип у объекта для того чтобы его, к примеру, передать в другой метод, поместить в коллекцию или даже через типа-рефлексию AMEMBERS() "распечатать на экране". Да и для примитивных типов есть функции/команды, которые без проблем примут любой из типов. Классический пример - TRANSFORM() и команда ?

Вы смешиваете в кучу ООП и процедурное программирование.
Ratings: 4 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
spinz
А как насчет перегрузки, когда для разных типов параметров вызываются различные функции?
Перегрузка имеет смысл для строго/статически типизированных языков. При этом по большому счёту она служит для обхода проблемы однообразной обработки разнотипных параметров (в чём и состоит сама суть этого принципа), сохраняя (или пытаясь сохранить) при том все плюсы строгой типизации.
Согласись было бы весьма глупо, если бы Add(int,int) складывал целые числа, а Add(float,float) их умножал. Ну или метод Kill(...) объекты одних типов "убивал", а другим давал конфетку Т.е. разумно предполагать, что семантика ВСЕХ перегрузок одного метода сохраняется - т.е. они делают "одно и то же по сути" - независимо от того, какими типами манипулируют. Соответственно в языке типа фокса нет надобности в перегрузках, т.к.
1) Можно передавать любые объекты в качестве параметров.
2) Можно (если это требуется) внутри метода "заглянуть" в объект и соответственно ветвить логику (если реализация "смысла метода" этого требует).
Контроль типов сам по себе не является предназначением "полиморфизма", соответственно его отсутствие (на этапе компиляции, конечно) не говорит о том что "полиморфизма нет".
P.S. С удивлением обнаружил что в википедии таки есть статья про г*нокод


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu
Вы смешиваете в кучу ООП и процедурное программирование.
Смешиваешь себя и программиста.



Исправлено 1 раз(а). Последнее : Ydin, 13.12.17 19:38
Ratings: 0 negative/2 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
lulgu
Вы смешиваете в кучу ООП и процедурное программирование.
Смешиваешь себя и программиста.

Довод "самдурак" как всегда безотказен, начиная со второго класса.
Ratings: 2 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Перегрузка имеет смысл для нищих языков. Строгая типизации - приобретенный атавизм.
Igor Korolyov
1) Можно передавать любые объекты в качестве параметров.
Можно передавать и метод как параметр, благодаря Execscript.
Хотя пишут, что в VFP - низзя.
На этапе компиляции Фокс очень не мешает, он вообще не нявязчивый.
У него одна проблем - его бросили родители
Ratings: 0 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
У него одна проблем - его бросили родители

Очень популярная в среде фокса легенда, на нее все списывается.
Ratings: 2 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu
Довод "самдурак" как всегда безотказен, начиная со второго класса.
Так откажись от этого возраста. Попробуй не писать здесь как второкласник или второгодник.
Процедурное программирование реализовано уже на Фортране (1954 год)
Специально достаешь ИК или просто троль понурый?
Не заметил, что он не отвечает? Или нравится сам процесс?
Этот Форум жив, благодаря ИК. Он свое время тратит здесь не за деньги или славу.
Тебя он уже не вылечит, а помогает многим. Лично мне в т.ч.



Исправлено 1 раз(а). Последнее : Ydin, 13.12.17 20:18
Ratings: 0 negative/1 positive
Re: Как можно обойти ограничение в 26 параметров?
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
lulgu
Довод "самдурак" как всегда безотказен, начиная со второго класса.
Так откажись от этого возраста. Попробуй не писать здесь как второкласник или второгодник.
Процедурное программирование реализовано уже на Фортране (1954 год)
Специально достаешь ИК или просто троль понурый?
Не заметил, что он не отвечает? Или нравится сам процесс?
Этот Форум жив, благодаря ИК. Он свое время тратит здесь не за деньги или славу.
Тебя он уже не вылечит, а помогает многим. Лично мне в т.ч.

Я тоже заметил, что ИК давно не набрасывается на мои посты как Тузик на грелку.
Помнится, даже какой-то меморандум выдвинул.
Но до этого хамил он мне, а не я ему.
И вы мне хамите, хотя на фото вроде мужик солидный, не пацан.
И в заслугах ИК никто не сомневается, но делать из этого монумент не стоит.

Теперь по делу, по его посту, теперь уж к вам, как к его адвокату.
Речь в его посте шла про ООП, но причем здесь TRANSORM()?
А если зачем-то вброшено TRANSFORM(), то причем здесь ООП?
Ratings: 3 negative/0 positive
Re: Как можно обойти ограничение в 26 параметров?
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Выше,
Соответственно в языке типа фокса нет надобности в перегрузках, т.к.
TRANSFORM() и команда ? без проблем примут любой из типов.
Если все буквы читать, то все по-месту
Ratings: 0 negative/0 positive


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

On-line: 41 Владимир Максимов akvvohinc AndyNigmatec  (Гостей: 38)

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