Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Декларация и исполнение процедур/функций [D7]


Страницы:   1 2

cobalt ©   (2012-10-31 16:49:00) 

А не подскажут ли блаародные доны,
если я в interface задаю декларацию процедуры,
а в implementation опускаю её параметры (никаких overload нет и не предвидится в принципе)
есть ли какие грабли?


Дмитрий Белькевич   (2012-12-20 19:21:00) [1]

Купили, кстати, на днях. Полезный эксперт.


jack128   (2012-12-19 12:05:00) [2]


> Если уж советуете что-то, не коверкайте название до неузнаваемости

я и не коверкаю. Это сокращение от разработчиков этого расширения. В частности именно так ("MMX")называется пункт меню в дельфе после установки эксперта.


Дмитрий Белькевич   (2012-12-11 00:43:00) [3]


> Если уж советуете что-то, не коверкайте название до неузнаваемости


http://www.tdelphiblog.com/2011/06/opisanie-modelmaker-code-explorer.html


Бодрый Яр   (2012-12-07 11:52:00) [4]


> https://www.google.com/search?q=delphi+MMX+Extensions

Если уж советуете что-то, не коверкайте название до неузнаваемости


jack128_   (2012-11-02 10:28:00) [5]


> Интел делает пасхальные яйца для Дельфей? )))

https://www.google.com/search?q=delphi+MMX+Extensions


Rouse_   (2012-11-01 17:39:00) [6]


> то же самое будет если сделать просто protected, но разместить
> TDescendant и TAncestor в разных юнитах

Да это понятно, просто я шерстил вчера хелп, пудово там видел в свое время описание strict protected где было написано примерно следующее, что доступ в наследниках есть к свойствам методам и переменным, про типы там небыло ничего сказано. Воть искал и не нашел, в текущем хелпе вообще strict блин не описывается...


bems   (2012-11-01 17:32:00) [7]


> Когда впервые с таким столкнулся решил что типы из стрикт
> секций не поддерживаются компилером и попросту не стал шаманить.
> ..

собственно strict тут не при чем
то же самое будет если сделать просто protected, но разместить TDescendant и TAncestor в разных юнитах


cobalt   (2012-11-01 16:03:00) [8]

> jack128_   (01.11.12 13:49) [23]
Интел делает пасхальные яйца для Дельфей? )))


jack128_   (2012-11-01 13:49:00) [9]


> Например, мне пришлось исключать глобальную переменную в
> одном модуле, и перетаскивать её в параметры функций.

MMX Extensions нужно юзать.
меняешь в интерфейсной части декларацию метода, жмешь "Ctrl + Alt + Y" - и у тебя автоматом меняется сигнатура в implementation


Rouse_   (2012-11-01 11:28:00) [10]

А все - понял о чем ты.

В таком виде работает: procedure TDescendant.Method{Param: TAncestor.TNested};

Ну чего не знал - того не знал.
Когда впервые с таким столкнулся решил что типы из стрикт секций не поддерживаются компилером и попросту не стал шаманить...


Rouse_   (2012-11-01 10:43:00) [11]


> bems ©   (31.10.12 23:15) [18]

Ну какой-же RTFM-то, код же не рабочий, о чем я и говорил :)

[DCC Error] Project1.dpr(23): E2362 Cannot access protected symbol TAncestor.TNested


cobalt   (2012-11-01 09:51:00) [12]


> Rouse_ ©   (31.10.12 22:48) [9]
> > Cobalt ©   (31.10.12 22:27) [7]
> > Например, мне пришлось исключать глобальную переменную в
> > одном модуле, и перетаскивать её в параметры функций.
> Эвона как - шикарный вид...

Наследие, Шурик :-)


icWasya   (2012-11-01 09:09:00) [13]

Так весь юнит windows так устроен.


bems   (2012-10-31 23:15:00) [14]


> стрикт на то и стрикт - он доступен только в пределах класса,
>  если о нем знает наследник - это уже не стрикт :)

неверно

strict protected отличается от protected тем что закрывает доступ другому коду в пределах юнита, но оставляет при этом доступ наследникам
это "правильный" protected, в то время как классический вариант кроме доступа наследникам даёт еще некое подобие "дружественных" отношений со всем кодом в том же юните.

короч rtfm


Rouse_   (2012-10-31 23:11:00) [15]


> нормальное использование полиморфизма

стрикт на то и стрикт - он доступен только в пределах класса, если о нем знает наследник - это уже не стрикт :)


bems   (2012-10-31 23:05:00) [16]


> если это работает - это не ваше достижение, это наша недоработка

почему? нормальное использование полиморфизма


Rouse_   (2012-10-31 23:03:00) [17]


> strict private метод может вызываться из публичного

Может


> но у публичного при этом не быть параметра типа объявленного
> как strict private

Может


> А в моём примере метод виртуальный, поэтому вызываться он
> может еще в TAncestor

Здесь ситуация (я не проверял - не скажу по поводу компилябельности кода) такого плана, если это работает - это не ваше достижение, это наша недоработка :)


bems   (2012-10-31 23:00:00) [18]


> strict private метод может вызываться из публичного, но
> у публичного при этом не быть параметра типа объявленного
> как strict private

strict protected конечно же


bems   (2012-10-31 22:57:00) [19]

strict private метод может вызываться из публичного, но у публичного при этом не быть параметра типа объявленного как strict private. А в моём примере метод виртуальный, поэтому вызываться он может еще в TAncestor
Я не думаю что мне здесь нужно приводить реальный сценарий использования такой конструкции, достаточно того что заявленная мной ситуация реально существует, и я это продемонстрировал


Rouse_   (2012-10-31 22:53:00) [20]


> метод не обязан быть публичным

А нафига нужны тогда вообще стрикт секции? :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо