یوسف زالی
سه شنبه 11 تیر 1392, 11:17 صبح
سلام.
کد زیر رو ببینید:
procedure MainProc;
begin
DoSomething..
end;
procedure AfterProc;
begin
DoOtherSome..
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MainProc;
MainProc;
Sleep(1000);
MainProc;
Application.ProcessMessages;
MainProc;
.
.
end;
می خوام دقیقا بعد از اجرا و "بیرون آمدن از محدوده پروسیجر" مورد نظر، AfterProc ران شه.
واضحه که نمی خوام کال کردن در خود MainProc اتفاق بیفته. نمی تونم کدها رو زیر کال کردن هم استفاده کنم چون اون متد در اصل یک رویداد اینترناله که بهش دسترسی ندارم.
راهی که فعلا دارم کج دار و مریز استفاده می کنم، استفاده از یک تایمره، ولی در سرعت های بالا گند می زنه.
نمی شه مثلا با رجیسترها یا گرفتن آدرس متد ... کاری کرد که هروقت دقیقا از یک پروسیجر RetN شدیم بره سراغ کاری که ما میگیم؟
اگر می تونستم فراخوان یک پروسیجر رو در برگشت از رویدادی که آدرسش رو دارم اینجکت کنم فکر کنم مساله حل می شه.
متشکرم
کد زیر رو ببینید:
procedure MainProc;
begin
DoSomething..
end;
procedure AfterProc;
begin
DoOtherSome..
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MainProc;
MainProc;
Sleep(1000);
MainProc;
Application.ProcessMessages;
MainProc;
.
.
end;
می خوام دقیقا بعد از اجرا و "بیرون آمدن از محدوده پروسیجر" مورد نظر، AfterProc ران شه.
واضحه که نمی خوام کال کردن در خود MainProc اتفاق بیفته. نمی تونم کدها رو زیر کال کردن هم استفاده کنم چون اون متد در اصل یک رویداد اینترناله که بهش دسترسی ندارم.
راهی که فعلا دارم کج دار و مریز استفاده می کنم، استفاده از یک تایمره، ولی در سرعت های بالا گند می زنه.
نمی شه مثلا با رجیسترها یا گرفتن آدرس متد ... کاری کرد که هروقت دقیقا از یک پروسیجر RetN شدیم بره سراغ کاری که ما میگیم؟
اگر می تونستم فراخوان یک پروسیجر رو در برگشت از رویدادی که آدرسش رو دارم اینجکت کنم فکر کنم مساله حل می شه.
متشکرم