On 02/28/2011 11:09 AM, Felipe Monteiro de Carvalho wrote: > In my idea > there would be a new widgetset in Lazarus, called for example "web" > and it would implement converting the LCL object structure to HTML. > There would be no GUI code, because it would be completely separted > from other widgetsets, like gtk. > While IMHO this would be very good to have, this seems like a huge work to do.
1) Creating and dynamically modifying the GUI in the browser: The Widget type design is: at designtime streaming the visual "published" properties of the Forms and their objects into a resource and on runtime create them when appropriate. As the design is done using a standard GUI, the "standard" properties will be stored. At runtime, the "remote browser GUI widget Type" component would need to create in the browser a look and work alike as the originally designed GUI. IMOH this only is possible using Java script (such as EXTJS). To do this, I feel that appropriate identifiers (type-, instance- , and property- numbers) would need to be assigned to all objects, to allow for a decently formalized communication between the pascal and the JS code. Of course modifying visual properties after creation of an object would work in the same way. 2) GUI-events: I don't think that using the standard HTML components' "events" would be useful. Some java script code would need to notify the pascal code of the user's input. 3) Non-GUI events: Of course timers, inter-process events (e.g. TThread.Synchronize) etc would need to be working. As those traditionally are implemented in the GUI-handling code, here a GUI-free implementation needs to be done from scratch. 4) Asynchronous Events toward the GUI. Of course e.g. Timer- and other main-thread-events need to be able to modify the GUI in the browser. I suppose this is the hardest part, as HTTP does not allow for this direction of communication. So some kind of "advanced polling" needs to be implemented (e.g. based on "Comet" technology, that I was informed to have some caveats). -Michael -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
