Главная страница
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.04 c
14-1129529606
TButton
2005-10-17 10:13
2005.11.06
Жжжжжуть


2-1129221370
kami
2005-10-13 20:36
2005.11.06
Как отладить ActiveX - объект ? (Shell Extension - IQueryInfo)


9-1119467426
Germany
2005-06-22 23:10
2005.11.06
Отрожение в воде


2-1129176571
Alex77777
2005-10-13 08:09
2005.11.06
Как вызвать форму TFrame


1-1129609852
7#Z$Ad!*7
2005-10-18 08:30
2005.11.06
Не работает TopItem в компоненте TTreeView