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 нет и не предвидится в принципе)
есть ли какие грабли?


Rouse_   (2012-10-31 22:50:00) [21]


> bems - победил тебя Вовч :)

читать, как : Вовч, тебя по любому победил bems :))
Чет у меня сегодня как у йоды наоборот все пишется :)


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


> В паблик метод параметром вложеный стрикт тип????

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

unit Unit12;

interface

type
 TAncestor = class
 strict protected
   type
     TNested = Integer;

   procedure Method(Param: TNested); virtual; abstract;
 end;

 TDescendant = class(TAncestor)
 strict protected
   procedure Method(Param: TAncestor.TNested); override;
 end;

implementation

{ TDescendant }

procedure TDescendant.Method{Param: TAncestor.TNested};
begin

end;

end.


Rouse_   (2012-10-31 22:48:00) [23]


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

Эвона как - шикарный вид...


> bems ©   (31.10.12 22:40) [8]

В паблик метод параметром вложеный стрикт тип????

Блин...
bems - победил тебя Вовч :)


bems   (2012-10-31 22:40:00) [24]


> ???????
> Пример ситуации плз...

вот пример
unit Unit12;

interface

type
 TAncestor = class
 strict protected
   type
     TNested = Integer;

 public
   procedure Method(Param: TNested); virtual; abstract;
 end;

 TDescendant = class(TAncestor)
 public
   procedure Method(Param: TAncestor.TNested); override;
 end;

implementation

{ TDescendant }

procedure TDescendant.Method{Param: TAncestor.TNested};
begin

end;

end.


кроме этого был еще случай когда просто компилятор начинал ругаться на реализацию при добавлении очередного параметра, и опыты показывали что дело просто в их количестве. Лечилось тоже указанием параметров только в интерфейсе. Но это я не смог сейчас воспроизвести, может в ХЕ2 уже исправили, а может это меня глючит


Cobalt   (2012-10-31 22:27:00) [25]

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


Rouse_   (2012-10-31 21:38:00) [26]


> bems ©   (31.10.12 21:36) [5]
> бывали даже ситуации, когда по другому не получалось, и
> в реализации приходилось убирать параметры намеренно. но
> в этом случае я указывал их в комментарии

???????
Пример ситуации плз...


bems   (2012-10-31 21:36:00) [27]

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


Rouse_   (2012-10-31 21:31:00) [28]

А нафига?


Dimka Maslov   (2012-10-31 18:26:00) [29]


> Германн ©   (31.10.12 17:59) [2]


Это работает только для классов.


> есть ли какие грабли?


Только если функция перегружается. Ну а кроме того, завсегда можно посмотреть параметры.


Германн   (2012-10-31 17:59:00) [30]


> а в implementation опускаю её параметры

А зачем делать лишние нажатия клавиш после Ctrl+Shift+C ?


icWasya   (2012-10-31 16:56:00) [31]

Только в том, что можешь запутаться сам.


Страницы:   1 2

Наверх

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