[Lazarus] *SPAM* Re: Lazarus implementation of TListView etc?
Michael Schnell
mschnell at lumino.de
Fri Oct 23 09:32:41 CEST 2015
On 10/22/2015 06:32 PM, Graeme Geldenhuys wrote:
> That still doesn't explain why the original Delphi code required a
> TListView instance. TListView is purely a GUI component - so I'm very
> puzzled.
I had been at this point already years ago. As you might know, I myself
do not have any Pascal "user" project to do, but what I wanted was to
provide a "toolbox" for my colleagues, who manage a huge "embedded"
Delphi project and would like to run it on Linux. As the project in fact
is a Windows Service, the Linux machine is supposed to run "headless".
This is exactly the same task as Bo has in mind.
Now my colleagues (like Bo) decline to modify the Delphi code greatly,
as the project still needs to be able to compile and run in Delphi for a
long time in the future. (A friend of mine, as he faced the same issue,
in fact rewrote his complete former Delphi project in Python and finally
was very happy with this.)
So what they want is workalikes for the visual Delphi components (as
they are provided by the LCL) but in a variant (i.e. "Widget type") that
does not need a GUI binding. That is why I hat been working on an
"ActiveNoGUI" Widget type (a better name might be "General Service
Application", as its supposed to be independent of the OS and the ARCH).
In a first step it just should provide handling the fpc-RTL's TThread
queue events, Application.ProcessMessages(),
Application.QueuAsyncCall(), and TTimer.
In a second step as many dummies for visual components as possible (or
necessary) should be provided, maybe with some basic display/keyboard
functions via pipe/telnet
In a third step "ifi" functionality should be added for providing an as
complete as possible (or necessary) remote GUI.
But right now, these plans are of less interest in the company, as WIN
10 IOT provides running Delphi Service applications on a not bloated
cost-free OS and cheap hardware such as the MinnowBoard MAX.. (Maybe not
a bad idea for Bo, as well.)
As with any newer version of Windows, a Service is not allowed any more
to (optionally) show a GUI, we (company) are pursuing the "un-RAD"ing of
the software (separating the business-logic and the GUI in distinct
units) anyway. So the result will be a compiled Delphi project and run
on Win IOT. A remote user interface can be done by TCP/IP - streaming
the completely propriety interface between these two brands of units.
Regarding Bo's project: This "un-RAD"ing would eliminate TListView and
friend and allow for making it a reals Service (even still in Delphi)
and then port it to headless Linux using Lazarus. (As I don't think he
wold be inclined to follow me on the long (endless ?) path: General
Service Application" Widget Type -> enhancing same to the visual
components he uses -> "ifi").
-Michael
More information about the Lazarus
mailing list