Boas @Gus!!!
Thanks a lot for your much insightful replies, they were really helpful!
In the end, the simplest solution (a design time form dialog) seems indeed to be the best.
My idea of implementing a function creating a dialog at runtime was inspired by a ProgressDialog implemented in the PyQt/PySide Python bindings of the Qt C++ GUI library, but there it is implemented as a class with methods for updating the progress bar. Perhaps something like that could be implemented in FPC/Lazarus, but it would require much more work (as you have already pointed out).
Ans yes, the TTaskDialog is available in FPC/Lazarus but the implementation seems far from being complete as compared to that of Delphi. Anyway, I was in doubt it these 'task dialogs' were for Windows only -- in which case, they are definetely not for me, as I am interested only in fully multiplatform solutions!
Now, let me just ask a humble, but decisive, question: where am I supposed to put the code of my 'lengthy process' in the quick solution you suggested for my Unit1? As you may recall, I want to present the user that dialog with a progress bar during the execution of a processe (which the user can interrupt by means of the 'Cancel' button).
In fact, I have seen proposals (at Stackoverflow, for example) for implementing such dialogs with timers and threads but they seem all too esoteric (especially the thread-based ones) to be required perform such a simple task.
Again, thank you very much!
With best wishes,