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

Вниз

Callback function   Найти похожие ветки 

 
Sodom ©   (2003-05-19 13:12) [0]

В общем тема такая. Я сделал функцию обратного вызова, ей я передаю один из параметров адрес функции, котороя вызывается из нее. Не работае если эта вызываемая функция является методом класса или находится внутри другой функции. В общем из кода думаю сьанет все ясно.

type
TFunc=function(b:byte):boolean; stdcall;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
function D(b:byte):boolean; stdcall;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function B(b:byte):boolean; stdcall;
begin
ShowMessageFmt("%d",[b]);
end;
function TForm1.D(b:byte):boolean; stdcall;
begin
ShowMessageFmt("%d",[b]);
end;
function A(f:TFunc):boolean; stdcall;
var i:integer;
begin
for i:=1 to 3 do f(i);
end;
procedure TForm1.FormCreate(Sender: TObject);
var m:TFunc;
function C(b:byte):boolean; stdcall;
begin
ShowMessageFmt("%s%d",["aa ",b]);
end;
begin
{1} m:=B;
{2} m:=C;
{3} m:=D;
A(@m);
end;
end.

Вариент {1} работает. А вот {2} и {3} нет. А хотелось бы что бы работали. Кто нить знает в чем дело?


 
MBo ©   (2003-05-19 13:17) [1]

метод класса - function(...):... of object

вложенная функция видна только в своем контейнере


 
Anatoly Podgoretsky ©   (2003-05-19 13:52) [2]

Ну желание это вещь хорошая, но только не выполнимое, разное количество параметров.


 
Sodom ©   (2003-05-19 14:18) [3]


>to Anatoly Podgoretsky

О каких параметрах ты говоришь? Вроде везде один b:byte.


 
Skier ©   (2003-05-19 14:26) [4]

>Sodom © (19.05.03 14:18)
+ неявный Self


 
Sodom ©   (2003-05-19 14:38) [5]


> Skier
И как с этим бороться?


 
Skier ©   (2003-05-19 14:40) [6]

>Sodom © (19.05.03 14:38)
Желательно мозг подключить ! :)


 
app ©   (2003-05-19 14:48) [7]

Sodom © (19.05.03 14:38)
Вариант номер 1



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
1-94834
Ольга
2003-05-19 18:34
2003.05.29
RichEdit


9-94654
Nimda
2002-12-18 09:39
2003.05.29
Книга по DelphiX.


3-94740
Endi
2003-05-10 11:34
2003.05.29
Вставка отсортированной выборки


3-94662
Kapitan
2003-05-12 12:57
2003.05.29
TDbf и codepage


14-95053
Дмитрий К.К.
2003-05-08 05:52
2003.05.29
Именинники 8 мая