Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
2-1193791900
Riply
2007-10-31 03:51
2007.11.25
Скорость сравнения строк в Ansi и Unicode формате.


2-1193835387
ChaoX
2007-10-31 15:56
2007.11.25
Параметры запроса


15-1192549756
vasIZmax
2007-10-16 19:49
2007.11.25
Вот не могу сообразить, как лучше сделать


2-1193841083
Tonich
2007-10-31 17:31
2007.11.25
Фильтр


15-1192899638
Cerberus
2007-10-20 21:00
2007.11.25
Можноли программно открыть страницу в уже открытом IE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский