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

Вниз

Работа с EnumWindows   Найти похожие ветки 

 
pasha_golub ©   (2003-11-28 11:39) [0]

Вообщем-то код


procedure TForm1.OnClick(Sender: TObject);
var LP: lParam;
I: integer;

function MyEnumProc(Handle: HWND; LPar: lParam);
begin
Result := true;
//вот отсюда я не могу обратится наружу
I := I + Handle; //access violation
Memo1.Lines.Append(inttostr(handle)); //access violation тоже
end;

begin
EnumWindows(@MyEnumProc,LP);
end;

Вообщем-то он нерабочий. Если вынести функцию MyEnumProc за пределы обработчика все работает, это и неудивительно.

Вопрос, почему нельзя использовать код, приведенный мной? Что происходит. Спасибо


 
clickmaker ©   (2003-11-28 11:41) [1]

callback ф-ия не может быть локальной


 
Игорь Шевченко ©   (2003-11-28 11:41) [2]

Потому что локальные процедуры нельзя использовать в качестве callback-функций


 
pasha_golub ©   (2003-11-28 11:51) [3]

Хотелось бы узнать где про соглашения вызова callback-функций прочитать. Спасибо


 
clickmaker ©   (2003-11-28 11:52) [4]

А чо тут читать. stdcall и дело с концом. Ну и все вышесказанное



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

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

Наверх




Память: 0.47 MB
Время: 0.041 c
1-16318
Darkwing
2004-01-25 13:55
2004.02.06
Процедура неправильно принимает динамический массив.


1-16446
Casper_
2004-01-28 08:45
2004.02.06
Народ поморите


4-16833
Awod
2003-11-27 11:45
2004.02.06
Сообщения при переключении между окнами разными способами


1-16328
Крутыш
2004-01-24 23:13
2004.02.06
Послать сообщение mdichild-форме на восстановление.


14-16694
dream
2004-01-16 09:51
2004.02.06
Всем кто интересуеться игровыми клубами