Vorrei sapere se è possibile implementare qualcosa di simile:callback Delphi?
procedure waitandcall(time,@MyProcedureOrFunction)
cui eseguire la funzione o la procedura che ho creato?
Non sono sicuro che vengano chiamati callback.
Vorrei sapere se è possibile implementare qualcosa di simile:callback Delphi?
procedure waitandcall(time,@MyProcedureOrFunction)
cui eseguire la funzione o la procedura che ho creato?
Non sono sicuro che vengano chiamati callback.
È assolutamente possibile e non è nemmeno necessario @ prima della funzione.
In realtà, tutti gli eventi si basano su questo.
Inizia definendo un tipo per la funzione/procedura
type
TMyProc = procedure(Param1: Integer);
Quindi è possibile utilizzare il procedimento di tipo ovunque, a patto che la firma del procedimento corrispondente al tipo.
Se stai usando un metodo di oggetto invece di una procedura/funzione normale, è necessario utilizzare of object
type
TMyMethod = procedure(Param1: Integer) of object;
Per chiamare la richiamata dal di dentro, si può usare qualcosa di simile:
procedure DoAndCallBack(MyProc: TMyProc)
begin
MyProc(1);
end;
I callback sono esattamente ciò che vengono chiamati e Delphi è in grado di creare e chiamarli entrambi. Sono anche noti come puntatori di funzioni . Vedere Procedural Types nella documentazione.
Avete un esempio di come usarli correttamente? Intendo cosa devo scrivere all'interno della funzione waitandcall per eseguire la procedura? – ELCouz
Se fa quello che suggerisce il nome, puoi farlo in due istruzioni: 'Sleep (t); F; ' –
Fondamentalmente volevo una procedura di" blocco "(per un thread) che contava il tempo (gettickcount) e aspetta (sleep) quindi avvia qualsiasi procedura – ELCouz
Grazie che è stato veloce :)! – ELCouz
Appena aggiunto un esempio su come è possibile utilizzare il callback. – ESG
Se capisco questo significa che potrei passare qualche procedura? – ELCouz