Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Как передать в функцию как аргумент - тоже фукцию?   Найти похожие ветки 

 
Хрюндель   (2005-10-17 15:11) [0]

Или процедуру. Возможно ли такое вообще?


 
Гаврила ©   (2005-10-17 15:13) [1]

Запросто
Объявляй тип
TMyProcedure = procedure(x: integer);
или
TMyProcedure = procedure(x: integer) of Object; //если метод

и вперед

procedure DoSomeThing(proc: TMyProcedure);
begin
 proc(1);
end;


 
Digitman ©   (2005-10-17 15:13) [2]


> Как передать в функцию как аргумент - тоже фукцию

никак.


> Возможно ли такое вообще?


невозможно.

возможно лишь передать адрес чего-либо. в т.ч. и адрес точки входа в некую ф-цию


 
Ega23 ©   (2005-10-17 15:13) [3]

Можно. Через адрес. @


 
Суслик ©   (2005-10-17 15:15) [4]

типа того

type
  Tm = procedure(a: integer) of object; // для передачи метода
  Tp = procedure(a: integer); // для передачи просто процедуры (т.е. не метода какого-либо класса)

procedure k(m: Tm; p: Tp);
begin
   m(1);
   p(1);
end;

type
  Tc = class
     procedure m(a: integer);
  end;

procedure Tc.m(a: integer);
begin
  ...
end;

procedure m(a: integer);
begin
  ...
end;

var
  c: Tc;
begin
  c := Tc.create().
  k(c.m, m);
end;


 
Хрюндель   (2005-10-17 15:15) [5]

2Гаврила ©   (17.10.05 15:13) [1]
Спасибо. Но это только для процедур?

2Ega23 ©   (17.10.05 15:13) [3]
А примерчик можно?


 
Джо ©   (2005-10-17 15:20) [6]


>  [5] Хрюндель   (17.10.05 15:15)
> Но это только для процедур?

Отчего же?

type
 TMyFunction = function (A: Integer): Integer;

function MyFunction (A: Integer): Integer;
begin
 Result := A+1
end;

procedure CallFunction (Func: TMyFunction);
begin
 Func (10);
end;

procedure TForm12.Button1Click(Sender: TObject);
begin
 CallFunction(MyFunction);
end;



Страницы: 1 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
1-1129723022
apellido
2005-10-19 15:57
2005.11.06
Как ограничить кол-во символов в TEdit для пропорц. шрифтов


2-1129369490
RzCoDer
2005-10-15 13:44
2005.11.06
Дин массивы


14-1129709305
Nic
2005-10-19 12:08
2005.11.06
Пара вопросов о Samsung ml1615


2-1129388903
Боян Георгиев
2005-10-15 19:08
2005.11.06
Как завершить програму без обекта Application


14-1129204858
Ксардас
2005-10-13 16:00
2005.11.06
Транскрибация предложений