Sto lavorando a un componente che deve essere condiviso tra Delphi e C++ Builder, quindi sto utilizzando Pascal come lingua franca. Poiché non ho Delphi sul mio computer a casa, ho prima creato il componente nell'IDE di Lazarus. Ora io "porting" a Delphi e trovato un problema stupefacente sintassi:Sintassi di assegnazione degli eventi in diversi dialetti Object Pascal
Questo compila con FPC (ma non Delphi):
FSync.FSyncMethod := @SyncCheckInput;
Questo compila con Delphi (ma non FPC):
FSync.FSyncMethod := SyncCheckInput;
Come posso condividere un'unità tra Lazarus e Delphi nonostante questa divergenza sintattica?
"* mancanza di un meccanismo di sincronizzazione comune (e portatile) *" - FreePascal imita molte delle classi core di Delphi, include 'TThread' e il suo metodo' Synchronize() ': [FreePascal Wiki | Tutorial applicativo multithread | La classe TThread] (http://wiki.freepascal.org/Multithreaded_Application_Tutorial#The_TThread_Class) –
@RemyLebeau Avevo bisogno di un meccanismo di sincronizzazione non bloccante e l'ho ottenuto con (il thread-safe) 'Application.QueueAsyncCall' in Lazarus e' PostMessage' a una finestra invisibile (tramite 'AllocateHWnd') in Delphi. Naturalmente, ho usato la classe 'TThread', ma' Synchronize' non è stata utile nel mio caso a causa della sua funzione rendezvous. Grazie comunque :) – Wolf
'TThread' ha anche un metodo' Queue() 'asincrono. –