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

Вниз

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

 
vishnia   (2007-09-03 15:36) [0]

Вопрос сформулирован в теме.


 
Сергей М. ©   (2007-09-03 15:38) [1]

Например, так

MyProcedure("Имя функции");


 
Вася Правильный   (2007-09-03 15:41) [2]

а смысл?
чтоб вызвать?
тогда передавай указатель


 
Dib@zol ©   (2007-09-03 15:45) [3]

Что ты конкретно хочешь сделать? Уточни.


 
Anatoly Podgoretsky ©   (2007-09-03 16:31) [4]

> vishnia  (03.09.2007 15:36:00)  [0]

А зачем?
Имя функции это текст, а текст передается в апострофах.


 
evvcom ©   (2007-09-04 11:59) [5]

Странно, почему этот вопрос еще в основной :?)


 
Anatoly Podgoretsky ©   (2007-09-04 12:02) [6]

Пусть полежит, или появится автор или оно само уйдет в архив.
Пока неясна подоплека.


 
{RASkov} ©   (2007-09-04 13:38) [7]

type TFunc = function;

function BlaFunc: String;
begin
 Result:="Bla";
end;

function OopsFunc: String;
begin
 Result:="Oops...";
end;

procedure ShowMess5Raz(F: TFunc);
var N: Integer;
begin
 for N:= 1 to 5 do ShowMessage(F);
end;
.....
ShowMess5Raz(BlaFunc);
ShowMess5Raz(OopsFunc);


 
Jeer ©   (2007-09-04 13:48) [8]

6-е и часть 7-го чувств подсказывают мне, что нужно что-то вроде нижеследующего, о чем выше упомянуто в [2]:

type
   TMyFunc = function(value: double): double;

function DoIt(x: double): double;
begin
 Result := x;
end;

function NotDoIt(x: double): double;
begin
 Result := 0.0;
end;

procedure MyProc(Func: TMyFunc);
var x: double;
begin
 x := Func(1.2345);
end;

//
MyProc(@DoIt);
MyProc(@NotDoIt);

P.S.
Возможны варианты с явным pointer-ом: MyProc(pFunc: Pointer)


 
app ©   (2007-09-04 14:05) [9]

Все гадание, если автор не появится до завтра, то ветку закрою.


 
Jeer ©   (2007-09-04 14:20) [10]


> app ©   (04.09.07 14:05) [9]


Спишу предлажить вориант:

function MyFunc1: double;
begin
Result := Random;
end;

function MyFunc2: double;
begin
Result := 2*Random;
end;

function MyFunc3: double;
begin
Result := 3*Random;
end;

procedure MyProc(sFunc: string);
begin
 if sFunc = "MyFunc1" then..
 if sFunc = "MyFunc2" then..
 if sFunc = "MyFunc3" then..
//...
end;


 
oxffff ©   (2007-09-04 16:01) [11]

class function MethodAddress(const Name: ShortString): Pointer?



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
11-1178463952
Ned
2007-05-06 19:05
2007.11.25
Мультиудаление в ListBox


15-1193263283
ZHVadim
2007-10-25 02:01
2007.11.25
Стандартные Нет компоненты


1-1188819375
vishnia
2007-09-03 15:36
2007.11.25
Как в процедуру передать имя функции?


2-1193900960
Darvin
2007-11-01 10:09
2007.11.25
Перехват OnMouseWheel в DrawGrid


1-1189017087
Fin
2007-09-05 22:31
2007.11.25
Как заполучить и в чём хранить 20 разрядное число ...