Форум: "Начинающим";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];
ВнизКак передать в функцию ссылку на другую функцию? Найти похожие ветки
← →
Guestt (2010-09-24 18:10) [0]Так, чтобы первая функция могла по этой ссылке вызывать переданную ей функцию.
← →
Юрий Зотов © (2010-09-24 18:28) [1]
type
TCallback = function(A, B: integer): boolean;
procedure CallFunc(A, B: integer; Func: TCallback);
begin
if Func(A, B) then
ShowMessage("Yes")
else
ShowMessage("No")
end;
function F(A, B: integer): boolean;
begin
Result := A = B
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CallFunc(3, 5, F);
end;
← →
Guestt (2010-09-24 18:40) [2]Большое спасибо! :)
← →
icWasya © (2010-09-25 16:21) [3]А если функция на самом деле метод то
type
TCallback = function(A, B: integer): boolean of Object;
function TForm1.F(A, B: integer): boolean;
begin
Result := A = B
end;
← →
Guestt (2010-09-26 19:58) [4]
> icWasya © (25.09.10 16:21) [3]
>
> А если функция на самом деле метод то
> type
> TCallback = function(A, B: integer): boolean of Object;
Да, "of object" я нашёл в исходниках. Но всё равно спасибо!
Ещё вопрос, вот такая передача нормальна? Нужно, чтобы через Y1 читать и ставить значение в X1.TFormA = class
X1 : Integer;
end;
TFormB = class
Y1 : ^Integer;
end;
procedure TFormA1.Button1Click(Sender: TObject);
begin
X1 := 1;
FormB2.F(X1);
ShowMessage(IntToStr(X1); // Надо, чтобы показывало 2.
end;
function TFormB2.F(var aX1 : integer): boolean;
begin
Y1 := @aX1;
Y1^ := 2;
end;
← →
Плохиш © (2010-09-26 21:39) [5]Глюкодром.
← →
_Юрий (2010-09-26 21:56) [6]Достаточно var - параметра.
← →
Guestt (2010-09-27 05:24) [7]
> _Юрий (26.09.10 21:56) [6]
> Достаточно var - параметра.
Где именно и каким образом использовать?
← →
_Юрий (2010-09-27 18:52) [8]
> Где именно и каким образом использовать?
TFormA = class
X1 : Integer;
end;
TFormB = class
end;
procedure TFormA1.Button1Click(Sender: TObject);
begin
X1 := 1;
FormB2.F(X1);
ShowMessage(IntToStr(X1); // Надо, чтобы показывало 2.
end;
function TFormB2.F(var aX1 : integer): boolean;
begin
aX1 :=2;
end;
← →
Ega23 © (2010-09-27 19:01) [9]
> Где именно и каким образом использовать?
И эти люди потом говорят, что юниты у них по нескольку десятков тыщ строк. И утверждают, что уменьшить их - невозможно. И что-то там ещё про нарциссизм было.
Это же основы. Не понимаю, как можно браться писать что-то серьёзное, не зная элементарных вещей.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c