Korkarım ki bu biraz aptalca bir soru, ama beni çok şaşırttı.Delphi'de Nesne Yöntemi Parametre Olarak Nasıl Aktarılır?
Bir yöntemin bir yöntemini bir prosedüre iletmek için mümkün olan en basit yolu arıyorum, böylece prosedür nesnenin yöntemini (ör. Bir zaman aşımından sonra veya başka bir iş parçacığında) çağırabilir. Bu yüzden temel olarak şunları yapmak istiyorum:
- Nesnenin yöntemine bir başvuru yakalayın.
- Bir başvuruya bu referansı verin.
- Bu referansı kullanarak, nesnenin yöntemini prosedürden çağırın.
Arabirimleri kullanarak aynı etkiyi gerçekleştirebileceğimi düşünüyorum, ancak başka bir yol olduğunu düşündüm, çünkü bu "nesne prosedürü" türü bildirimi var.
Aşağıdaki , çalışmaz, ancak kafamın karıştığını açıklamaya yardımcı olabilir ...?
interface
TCallbackMethod = procedure of object;
TCallbackObject = class
procedure CallbackMethodImpl;
procedure SetupCallback;
end;
implementation
procedure CallbackTheCallback(const callbackMethod: TCallbackMethod);
begin
callbackMethod();
end;
procedure TCallbackObject.CallbackMethodImpl;
begin
// Do whatever.
end;
procedure TCallbackObject.SetupCallback;
begin
// following line doesn't compile - it fails with "E2036 Variable required"
CallbackTheCallback(@self.CallbackMethodImpl);
end;
Lütfen kodu bırakınız. –
, bazı insanların işleri daha zor bir şekilde yaptıklarını, burada çalıştığım iş parçacığı yöntemini analiz ederek, bu yaklaşımı kullanarak çağrıları yapmaları çok daha kolay olurdu. soru için thx – kabstergo