2012-12-28 11 views

cevap

17

Bu kesinlikle mümkündür ve @ işlevinizden önce bile gerekmez. Aslında tüm olaylar buna dayanmaktadır. senin prosedürün imza sürece Sonra tip yerde senin prosedür kullanabileceğiniz fonksiyon/prosedür

type 
    TMyProc = procedure(Param1: Integer); 

için bir tür tanımlayarak

Başlangıç ​​senin tipini eşleşir.

procedure DoAndCallBack(MyProc: TMyProc) 
begin 
    MyProc(1); 
end; 
:

yerine düz prosedür/işlevin bir nesne yöntemini kullanarak ediyorsanız, böyle bir şey kullanabilirsiniz içinden senin geri arama aramak için of object

type 
    TMyMethod = procedure(Param1: Integer) of object; 

kullanmak gerekir

+0

Bu hızlı :) teşekkür ederim! – ELCouz

+0

Sadece geri aramayı nasıl kullanabileceğinize dair bir örnek eklediniz. – ESG

+0

Anladığım kadarıyla, herhangi bir prosedürü geçebilir miyim? – ELCouz

3

Geri aramalar bunlara tam olarak ne denir ve Delphi tamamen bunları oluşturma ve çağırmak için yeteneğine sahiptir. Bunlar ayrıca işlev işaretçisi olarak bilinir. Dokümantasyonda Procedural Types'a bakın.

+0

Bunların düzgün bir şekilde nasıl kullanılacağı konusunda bir örnek var mı? İşlemi yürütmek için waitandcall işlevinin içine yazmam gereken şeyi mi kastediyorum? – ELCouz

+1

Adından da anlaşılacağı gibi, bunu iki talimatta yapabilirsiniz: 'Uyku (t); F; ' –

+0

Temel olarak, (iş parçacığı için) zaman (gettickcount) ve bekle (uyku) saymak için bir" engelleme "yordamı istedim ve ne olursa olsun – ELCouz

İlgili konular