Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.03.2015, 22:00
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию Расположение функции, процедуры

Вопрос, у меня, довольно общий.
В функции (методе класса) несколько раз повторяется некое действие, логично вынести его в отдельную функцию:
Код:
function GetTag(Str: String; Tag: String):String;
var   p1, p2: Word;
begin
  . . .
end;

function TFB2Folder.GetAutorTitle(FileName: String):String;
var F: File of Byte;
     x: Byte;
     u, titleInfo: UTF8String;
begin 
   . . .     
 Result:= GetTag([параметр]; [параметр]);  
   . . .  
 Result:= Result+GetTag([параметр]; [параметр]); 
end;
но дело в том, что это некое действие повторяется только в этой функции (методе класса), в связи с чем возник вопрос: может ли метод быть помещен внутри другого метода. Дело в том, что несколько раз на форумах и в статьях по delphi наталкивался на странную конструкцию, что-то вроде (не ручаюсь за точное воспроизведение):
Код:
procedure SomeProc ;
var . . .
 . . .
begin // блок расположенный
. . . // внутри 
end; // основной процедуры
. . .
begin // реализация
. . . // процедуры SomeProc
end;
Вообще, объясните (если кто понял, что я имею ввиду ), что это за конструкция.
Ответить с цитированием
  #2  
Старый 28.03.2015, 22:09
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Есть понятие inline метода.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 28.03.2015, 22:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да не, тут проще.
Можно описать функуцию/процедуру внутри другой функции/процедуры. Она будет "видна" только внутри этой функции и может видеть параметры функции. Например:
Код:
function IncParam(a : integer) : integer;
  function IncPositive : Integer;
  begin
    Result := a + 1;
  end;
  function IncNegative : Integer;
  begin
    Result := a - 1;
  end;
begin
  if a >= 0 then Result := IncPositive Else Result := IncNegative;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Помидоркин (29.03.2015)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter