Re: [Lazarus] External/out-of-tree LCL widgetset

2017-11-29 Thread Michael Schnell via Lazarus

On 28.11.2017 11:28, Sven Barth via Lazarus wrote:
Why should they? They are two completely different projects. From the 
LCL's point of view fpGui is a black box like GTK, Qt or the Windows API.
OK, so in the end fpGUI *is* an external Widget set, only that it comes 
more independent of the OS distribution than WinXX, GTK, QT or Apple 
variants.


-Michael
-- 
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-11-30 Thread Michael Schnell via Lazarus

On 30.11.2017 10:04, Michael Schnell via Lazarus wrote:

e.g. a small embedded device or to allow running them as a service..
Of course another important "headless environment" is server 
applications with built-in Web server or sitting behind a standard 
WebServer.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-11-28 Thread Michael Schnell via Lazarus

On 27.11.2017 20:07, Graeme Geldenhuys via Lazarus wrote:


 Either way, it would be nice to see LCL-CustomDrawn and LCL-fpGUI 
widgetsets get some more attention.
Is there any chance to unify them to a single Widget Type implementation 
that uses a low level graphics API (without an external Widget Set) ?


AFAI understand, MSE-Gui does this very successfully. They even provide 
a functionality called "IFI" that allows for remoting the interface 
between the RTL (and the MSE-variant of the LCL) and the "custom drawn" 
library via a stream interface.


IMHO this is a highly attractive way to provide an optional remote GUI 
to otherwise headless applications, while still providing portability 
and  support for Delphi-typical RAD-style development.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-11-28 Thread Michael Schnell via Lazarus

On 27.11.2017 19:59, Graeme Geldenhuys via Lazarus wrote:

 (except for TLabel)



To me TLable seems like very important to allow easy "porting" of 
applications from an other widget Type to fpGUI/LCL.

Is implementing TLabel really that hard ?

-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-11-30 Thread Michael Schnell via Lazarus

On 30.11.2017 00:02, Graeme Geldenhuys via Lazarus wrote:


RAD style development is highly overrated...

I do know that very exactly, been there often enough.

RAD is great to create "small" applications, but with huge projects, you 
will very likely hit a limit where you wish you would not have started 
the project in an RAD manner.


Nonetheless there are lots of 3rd party components for Delphi (and 
Lazarus if you can get them in source code) that prevent to do your 
projects using them in a non-RAD manner, as they provide or organize 
business logic but their components need to be "dragged on a form" and 
create some user interface there, instead of just providing hooks to 
have the user do his own GUI for them if appropriate.


Porting originally RAD crafted projects to a headless environment (e.g. 
a small embedded device or to allow running them as a service) is 
possible (did that multiple times) but a real PITA.


That is why a long standing wish is a fully fledged LCL Widget Type 
(just swap the Widget Type in the project's configuration in Lazarus and 
press compile), that provides no local GUI but some hook to optionally 
attach a remote GUI. MSE can do something like this via "ifi" (i.e. an 
external fpc program connected via some stream interface), more 
"generally usable" would be an application running in a browser (e.g. 
Pascal compiled Java script or WebAssembly) connected via 
HTTP/WebSocket, and a decently prepared way to use such "nearly remote" 
GUI for a Linux/Windows/Mac "service".


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-11-30 Thread Michael Schnell via Lazarus

On 30.11.2017 12:09, el es via Lazarus wrote:

It is not easy to break free from old, ... programming practices


Nonetheless, IMHO RAD is a great way to start programming, as you 
immediately and painlessly can see (visualize) what your "business 
logic" software does and easily set parameters and triggers for your 
business logic. So you are not that likely to jump off the ship at an 
early stage.


But education needs to make clear the limitations of this proceeding 
strong enough.

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-12-01 Thread Michael Schnell via Lazarus

On 01.12.2017 08:22, Martin Schreiber via Lazarus wrote:
For me Delphi is not the best RAD environment and therefore 
developments made with Delphi should not be used to disqualify RAD as 
a whole. 


Which are there other than Delphi and its siblings ?

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-12-01 Thread Michael Schnell via Lazarus

On 01.12.2017 07:42, Martin Schreiber via Lazarus wrote:

separating of GUI and business logic is perfectly possible with RAD.
Yep. But you need to apply this discipline to yourself right from start 
of the project, as doing this afterwards is tedious.


Unfortunately many projects arise from sloppy prototypes necessary as a 
proof of concept before officially starting the project.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-12-05 Thread Michael Schnell via Lazarus

On 05.12.2017 00:50, Graeme Geldenhuys via Lazarus wrote:


DBGrid behaves slightly different to TStringGrid, and is slow.
While for perfect performance / clearness / portability / ... , DBGrid 
supposedly should not be used in a production release, it might be very 
helpful when designing an application.


Maybe the way to go is to do an RAD form with Debug I/O when drafting an 
application and in the process move any tested business logic code in 
non-visual units, and when deciding how the final GUI should work and 
look like do this in another Form, e.g. using "GUI-Mediator". Finally 
deactivate the RAD form, but keep it for reference.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] PlotFunction patch declined?

2017-11-07 Thread Michael Schnell via Lazarus

On 07.11.2017 10:55, Alexey via Lazarus wrote:

https://bugs.freepascal.org/view.php?id=32653

wp wrote: >>Sorry I will not fix this one because it opens another 
Pandora to add features well-established in TAChart.


Pls apply the patch. it makes several plots on one panel. What 
Pandora?? I don't know Pandora, I use Laz and LCL.



-> https://en.wikipedia.org/wiki/Pandora%27s_box :-)

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Application

2017-11-09 Thread Michael Schnell via Lazarus

On 09.11.2017 11:12, Michael Van Canneyt via Lazarus wrote:

We are busy creating this framework.
Great. From the previous messages I got the impression it would be 
depreciated.


But Rome wasn't built in a day.

Obviously. I am not trying to hurry anybody. I am very happy with what 
Lazarus and fpc do offer. Nonetheless I think discussing improvements 
always does make sense.


Thanks a lot !
-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Application

2017-11-09 Thread Michael Schnell via Lazarus

On 08.11.2017 16:39, Michael Van Canneyt wrote:
.. I believe that you should embrace the platforms you're using. That 
means: browser as client, webserver as server, and HTTP or websocket 
as the transport layer.


This depends on who is "you" :) .

I've already been doing some " Lazarus Community" work (I do have a 
working draft for an "application" Widget Type that does not do a GUI 
binding, as an extension to the NoGui Widget Type, but stop working on 
it due to the complexity of publishing any of it), and so "you" might be 
the creator of Lazarus means to provide such a framework managing the 
clint/server communication in some (yet undefined) user friendly way.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Applicationx

2017-11-08 Thread Michael Schnell via Lazarus

On 08.11.2017 08:47, Marcello via Lazarus wrote:

Are there any information about it?

I just found and watched -> https://prezi.com/upueosj4ep0q/pj-suite/?webgl=0

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Application

2017-11-08 Thread Michael Schnell via Lazarus

On 08.11.2017 11:14, Mattias Gaertner via Lazarus wrote:

A server is not needed. You can write standalone browser applications that work 
offline too.
OK. Great !  Stand alone browser based applications might be one 
desirable type of application, but AFAIK, the more commonly required 
type of application would be server based.


Sigh. Michael, sometimes I got the impression you are stuck in a loop. 
Use TFPTimer and TThread. 

You might be right :-)
But it's not just me, but it's based on the Lazarus claim "write once, 
compile everywhere" which means that I can design and test an 
application in - say - Windows (using the "RAD"-way that once has been 
introduced by (Borland-) Delphi, and then tell Lazarus to create a 
server application with a browser GUI by just compiling  my code. In a 
perfect world this should simply work, in a less perfect world, some 
tweaks might be necessary to optimize the thing for either platform to 
run on.



   - Communication between the Server application and the part running on the 
brower via a 3rd party web server.

There are various ways since years.
I do know. Some are depreciated, I feel at the moment WebSocktes is the 
way to go.
But see above: the Lazarus user should not even see this, but the 
infrastructure would organize the communication in a (as good as 
possible) compatible way, by just telling Lazarus to compile the 
application as a server based application with a browser based GUI 
accessible via a web-server.



   - allowing for decent Debugging in Lazarus (e.g. via an optional built-in 
web server, which AFAIK already is in place) .

Server debugging is already possible. But I agree, it could be easier.
Client side debugging is working. You can use the browser's debugger to set 
breakpoints in the Pascal code and step through.
I suppose you are talking about pas2js, running in a Browser, which is 
perfectly viable, of course.


What I meant was debugging the server based part of the application 
(which accesses an attached GUI part done in pas2js. Here (AFAIK) a 
webserver unit that allows for attaching to a browser to display the GUI 
while the application (i.e. the "business code") runs under Lazarus, 
already is provided. so I don't assume any problems here. (While in 
Delphi AFAIK, this is  a major problem).



   - Lazarus providing a GUI builder for the browser based GUI.

That's a big topic. Some parts already work.
As I already did some research om that (some time ago) I do know that is 
is a big topic :) . That is why I ask. Great to hear that it is worked 
on and something already is functional.

Moreover IMHO a migration path from Java script in the Browser (pas2js)
to using WebAssembly in the Browser should be considered.

It has been started in FPC, but no one is working on that.


So same state as since quite a while. Regarding that most decent 
browsers nowadays provide the WebAssembly framework, it seems viable to 
ask, but of course developing time is limited.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Application

2017-11-08 Thread Michael Schnell via Lazarus

On 08.11.2017 12:28, Michael Van Canneyt via Lazarus wrote:

It is the basic building block.
I do agree that it is a very viable building block, but theoretically 
for "Rich internet Applications" there are alternatives:
 - WebAssembly (which as far as I understand is considered for fpc, and 
I suppose it might get started after pas2js is released, as it partly 
might be based on same. )
 - using a 3rd party JS based GUI framework (like EXTJS/EXTPASCAL, 
which is very expensive/depreciated/dead), or e.g. "React", which might 
be not decently suited as a target for the Lazarus GUI builder.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Application

2017-11-08 Thread Michael Schnell via Lazarus

On 08.11.2017 14:15, Sven Barth via Lazarus wrote:


Nope, WebAssembly and what pas2js does are two different things even 
if in the end both run in the browser's JavaScript engine.

Of course I do know this.

But AFAIK WebAssembly has been invented with JS in mind, so it might 
follow some paradigms, that are closer to JS than to Pascal (e.g. not 
strictly typed variables). So maybe some stages of the transpilation / 
compilation might be similar.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Quick Video: A Web Application

2017-11-08 Thread Michael Schnell via Lazarus

On 08.11.2017 13:12, Michael Van Canneyt via Lazarus wrote:
ExtPascal way (or UniGUI for that matter) is the wrong way to do 
things. Interesting as a toy, but not suitable for

a) Large, scalable websites
b) serveless applications.

Agreed ! But if doing a server based application (ore one that includes 
the web-server) that mainly does unattended, "embedded" work,  and tghe 
GUI is only used for configuration and monitoring, such a 
toy-functionality might be useful, nonetheless.


From the view of the application programmer, doing a Rich Internet 
Application with pas2js is a similar endeavor as Microsoft intended by 
Silverlight (which has been canceled some time ago) : Design an 
application and define "bridging points" that "somehow" shift the 
execution between server and browser.


With Silverlight, both parts would be compiled to CIL byte code and run 
an a CIL (aka .NET) framework, with fpc, the server part would be 
compiled to a native executable while the Browser part would be compiled 
to JS (or maybe later to WebAssembly).


The user source code would not necessarily need to contain much more 
than appropriate definitions of the bridging points (supposedly some 
kind of inter-class interface), and the Lazarus infrastructure would 
take care of the communication.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-12-04 Thread Michael Schnell via Lazarus

On 01.12.2017 20:43, Graeme Geldenhuys via Lazarus wrote:

On 2017-12-01 13:33, Marcos Douglas B. Santos via Lazarus wrote:

I believe RAD is the best way to code a GUI


I'll even disagree with that - somewhat. :)

   http://geldenhuys.co.uk/articles/model-gui-mediator.pdf


The article starts :

After mastering OOP and Object Persistence, the next thing
developers need to conquer is how to present their business objects
in the GUI ...

IMHO this is the best way to threaten away would be software developers 
from even starting to try to do any programming but have them do their 
living as windows cleaners.


When (as a newcomer) starting to do any "business logic", it's essential 
to have a toolbox that allows for testing your work on the fly. And this 
(at best) does include a really simple way to add a GUI (this is called 
RAD), even if intending to use this only for your own purpose and 
deactivate it in any final version of the product.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] External/out-of-tree LCL widgetset

2017-12-05 Thread Michael Schnell via Lazarus

On 05.12.2017 12:16, Martin Schreiber via Lazarus wrote:

What is wrong with TDBGrid???

As I quoted, Graeme claims it's slow.

-Michael


--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Converting a component package Delphi->Lazarus using built-in converter?

2018-06-11 Thread Michael Schnell via Lazarus

On 08.06.2018 19:05, Bo Berglund via Lazarus wrote:

This Delphi package is a collection of some 20 components and all of
them have Register procedures inside of each source file.


Are those really IDE-relevant packages (showing up in the visual 
component selection ) ?


If not, they might be just Delphi "Runtime Packages" (a special kind of 
DLLs that can be attached by Delphi executables).


The concept of "Runtime Packages" is not (yet) supported by FPC/Lazarus. 
That is why the IDE needs to be recompiled when installing a package 
that provides visual components.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Using a component OBJ file in Lazarus?

2018-06-11 Thread Michael Schnell via Lazarus

On 10.06.2018 15:11, Bo Berglund via Lazarus wrote:

... Build IDE: Exit code 2, Errors: 23 ...


You want to compile some 3rd party Dongle code in the IDE ?

That is more than weired !

-Michael


--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Using a component OBJ file in Lazarus?

2018-06-12 Thread Michael Schnell via Lazarus


On 11.06.2018 21:03, Bo Berglund via Lazarus wrote:

On Mon, 11 Jun 2018 10:23:44 +0200, Michael Schnell via Lazarus 
 wrote:


You want to compile some 3rd party Dongle code in the IDE ?

That is more than weired !

Sorry, I don't really know what you mean here...
What is the reason for this comment?
Unlike Delphi it seems like when one wants to add components to the
development IDE palette in Lazarus one has actually to *rebuild* the
IDE, there seems to be no otehr way...



As fpc/Lazarus dos not (yet) provide run time packages, and IMHO it will 
ask for major problems when compiling the Lazarus IDE to contain the 
Dongle code, I suppose your best option is to replace the Dongle .OBJ 
file by a small pascal function and use this to build your package to 
allow it for compiling the IDE (providing the design time stuff) and the 
user program (providing the run time stuff).


Now you need to "fake" the runtime package behavior by doing the said 
small pascal function in a way that it dynamically (not in the startup 
code !) loads and then uses a dll .


The dll would be done in a way that it just forwards the call to the 
functions provided by Dongle .OBJ to same, and statically links to it.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Using a component OBJ file in Lazarus?

2018-06-12 Thread Michael Schnell via Lazarus

On 12.06.2018 11:30, Sven Barth via Lazarus wrote:
 Only because the code is part of a package that's loaded by the 
Delphi IDE does not mean that it also is one in the final Delphi 
program. Delphi package distributions more often than not also contain 
the DCU for static linking.


Of course you are correct that in Delphi a package can be linked 
dynamically to the IDE (it can't be linked statically, as the IDE never 
is recompiled), but statically in the final executable.


But Lazarus does not provide dynamic linking to the IDE in such a way. 
That is why the IDE needs to be recompiled when adding a package with 
"design time stuff". (IMHO this is not harmful at all.)


Am I wrong supposing that this means that the package will be statically 
linked to both the IDE and the executable, and hence it content will be 
linked in with both ?


AFAIU, there are means to control how the code is executed at runtime 
and how at design time, but this does not affect linking.


Hence the dongle code will be linked in with the IDE and might (or might 
not) provide problems.


-Michael
--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Using a component OBJ file in Lazarus?

2018-06-13 Thread Michael Schnell via Lazarus

On 12.06.2018 17:08, Sven Barth via Lazarus wrote:

No. Delphi does *not* solve this by using dynamic linking.

OK. I see. Thanks for pointing this out.

Hence in such a (potentially problematic) case the suggested solution 
might be helpful even with Delphi.


But as Bo's code seemingly works fin with Delphi, hopefully compiling 
the Dongle code into the Lazarus IDE will simply work as expected.


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Using a component OBJ file in Lazarus?

2018-06-12 Thread Michael Schnell via Lazarus

On 12.06.2018 14:06, Sven Barth via Lazarus wrote:
The dongle code would also be linked if it would be in a dynamic 
package and Lazarus would support them.

Sorry, I seem not to be have been clear.

The (potential) problem I want to provide a solution for is: not to link 
the Dongle code in the Lazarus IDE executable. (But have it usable in 
the compiled user application.)
(Delphi does this by using the dynamic linking for the package the 
Delphi IDE uses, but this is of no concern when doing Lazarus.)


That is why I suggest to avoid the Dongle code in the package 
altogether, and have it only dynamically linked late (on request, which 
only is supposed top occur with the user application).


-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Doe fpc/lazarus already have System-Threading or is it planned

2018-02-02 Thread Michael Schnell via Lazarus

sorry
-> http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Threading
-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


[Lazarus] Doe fpc/lazarus already have System-Threading or is it planned

2018-02-02 Thread Michael Schnell via Lazarus
Featuring "parallel loops", "future variables", etc, implemented via a 
thread pool that is transparent for the application programmer.


-> http://docwiki.embarcadero.com/Libraries/Tokyo/de/System.Threading

-Michael


--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] TMS Web core released - based on pas2js.

2018-02-16 Thread Michael Schnell via Lazarus

On 15.02.2018 22:22, Michael Van Canneyt via Lazarus wrote:
Yesterday, TMS Software has released a tech preview of their "TMS Web 
core" product for Delphi.

Great stuff indeed !

-Michael

--
___
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] alternative to web programming?

2019-02-14 Thread Michael Schnell via lazarus
There are application that require a „stylish“ GUI for optimum user 
satisfaction, …. And there are applications that do their thing more or less on 
their own, requiring human attention only for configuration and service.

-Michael

-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] It's alive !

2019-09-24 Thread Michael Schnell via lazarus
Wonderful !!!

-Michael
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] The future of the Lazarus IDE

2019-11-29 Thread Michael Schnell via lazarus
IMHO, in the end it should be possible to do an application in an RAD-way (if 
desired),  test it on a desktop (using the desktop Widgets for its GUI), scale 
it (by defining parts of the procedures as "Remote"), and finally  (just by 
re-compiling) have it run as a combination of application-parts running as 
WEBASM in the browser (and used the browser for its GUI) and application-parts 
running on the Server as fully compiled native code. The infrastructure would 
need to automatically provide the communication means (shared objects, remote 
procedure calls, ...) via Websockts. 
-Michael

-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


<    1   2