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

Вниз

Помогите разобраться с CallBack-вызовами   Найти похожие ветки 

 
repo   (2003-09-19 13:40) [0]

Наверное я просто чего-то не понимаю, вот простой пример:

...
public
procedure IncLabel(_Value:LongInt);

type
TMyCallBack = procedure (CurrValue:LongInt);

procedure ExecuteInc(CallBackFunc: TMyCallBack);

implementation

//Процедура, в которой используется CallBack
procedure ExecuteInc(CallBackFunc: TMyCallBack);
Var
i: LongInt;
Begin
For i:=1 to 1000000 do CallBackFunc(i);
End;

//Сама CallBack - ф-ия
procedure TForm1.IncLabel(Digit:LongInt);
Begin
Label1.Caption:=IntToStr(Digit);
Label1.Repaint;
End;

//Вызов процедуры
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecuteInc(@TForm1.IncLabel);
end;


При вызове это все говорит Access violation... Read of address FFFFFFFF


 
Sandman25   (2003-09-19 13:41) [1]

Это должна быть процедура, а не метод.


 
repo   (2003-09-19 14:17) [2]

О, точно. А что, метод точно никак нельзя использовать?


 
icWasya   (2003-09-19 14:23) [3]

type
TMyCallBack = procedure (CurrValue:LongInt) of object;


 
repo   (2003-09-19 14:29) [4]

>TMyCallBack = procedure (CurrValue:LongInt) of object;

при вызове пишет: несовместимые типы TMyCallBack и Pointer


 
Unknown   (2003-09-19 14:44) [5]

http://mazurkin.virtualave.net/papers/11callback/index.html


 
PVOzerski   (2003-09-19 14:44) [6]

А зачем именно метод-то? Если надо добраться до полей.свойств объекта, Вы их все равно из метода.callback"а не увидете, даже если-таки выдерете из связки двух указателей тот, что на код. Метод получает Self как неявный параметр, кто его передаст при вызове callBack"а? Я бы присвоил значение Self глобальной переменной (или ThreadVar"у, хотя этот вариант не проверял), callback сделал бы "автономной" процедурой и из него через эту глобальную переменную до всего нужного добрался.



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

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

Наверх




Память: 0.45 MB
Время: 0.008 c
1-3847
Relaxxx
2003-09-19 11:44
2003.10.02
Построение TreeView по данным с таблицы


1-3980
ah
2003-09-19 21:22
2003.10.02
есть предположим стринг= asdf , мне нужно определить коды


9-3694
Trix
2002-12-07 21:06
2003.10.02
Японский Кроссворд


1-3938
kavlad
2003-09-17 12:20
2003.10.02
Самопальный контрол-панель и design-time


6-4015
DimaS
2003-08-03 20:04
2003.10.02
Доброе время суток! Как мне отправить файл на SMTP через WinSock?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский