On 01/07/2014 04:16 PM, Paul Breneman wrote:

So please share what you can.  Thanks!


Right now I am too busy with completely unrelated things to do the planned "active NoGui" Widget Type :-( .

I just can provide some thoughts and offer to reply to any questions if anybody wants to get on that task.

The basics are (now) rather clear to me:

- The stuff needs to be appropriately integrated in the "WidgetType" selection mechanism Lazarus provides.

- The stuff needs to be appropriately integrated in the "Project Source" mechanism Lazarus provides.

 - You need to do (at least) a TApplication class and a TTimer class

- Any not GUI related stuff in TApplicartion should work as expected (.ExeName, Callback-events, QueueAsyncCall ....) should work as expected

- WakeMainThread needs to be implemented according to the OS we compile for.

- After the initialization a main loop is executed that calls CheckSynchronize with an appropriate timeout (see below)

 - to do a really simple TTimer class my idea is:
- - calculate the common denominator (but rounding to an appropriate minimum aka "Granularity") of any instanciated TTimers' Time settings
 - - use that value as Timeout in CheckSynchronize.
- - in the main loop, count a global timer and call TTimer Events as appropriate (if timer mod Timer[i].TimeSpec = 0, with Timer[i].TimeSpec := Timer[i].Time div Granularity)
 - - The Granularity should be a property the user can set.


I did a testing program that checks the multiple means of main thread notification with multiple Widget Types.

If there is a new Widget Type I would modify the program to work with same and provide it for testing the WidgetType

-Michael

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to