[Pas2js] Pas2js Digest, Vol 55, Issue 3

Stephen Wright stephenmichaelwright at yahoo.co.uk
Tue Feb 7 20:24:51 CET 2023


 Hi Janusz
Thankyou for your kind opinion of  Xide and Xcomponents. I am sorry to hear that you are having problems compiling XComponents from Lazarus. 
We developed and tested it on Lazarus version 2.1.0 and FPC version 3.3.1. and have notes in https://github.com/Steve--W/XComponents/blob/master/readme.md on how to compile it.
Unfortunately, we are not in a position to provide detail support beyond the GitHub notes. However I am all too aware of the effort and frustrations involved in building packages for enterprise level environments like Lazarus. This is the reason that the XIDE environment runs as a stand alone utility as this allows us to radically simplify the installation and learning curve involved.
For example, as you are probably aware, XIDE can compile itself to generate a static HTML file that runs on Chrome in the browser (on line or off line) with no need for any installation or configuration. 
Hence you can go to an example of XIDE on the web (e.g https://steve--w.github.io/XIDEPages/XIDEPascalSVGAndGPUExample.html) right click on "view page source" copy that HTML text save it to a local file and then run it in chrome, hit the "System" and "Clear" options and you then have you own clean copy of XIDE/XComponents ready to develop your own apps for the web.
The only reason for compiling XIDE from Lazarus is if you wish to customize  or debug any of the components, or you want to generate the .exe version of XIDE to run under windows. (but we can send you a pre-compiled snapshot .exe file if you wish and if Michael et al are prepared to forward a .exe)
Our motivation in developing XIDE as a "Browser First"  entry level development environment was primarily to support my PhD research as we found the conventional tools available for web development to be fragmented and overly complex. We also hoped it might introduce some Python users to the merits of FPC. (I am using it on a daily basis for my research into robust mathematical modelling for economics and finance and I am very pleased with the ease of use in this role.)
The downside of our radical simplification is that we do not provide the levels of cosmetic customization, security and universal browser compatibility needed for enterprise level public facing web apps. (e.g. we only test on Chrome.)
I hope this helps with your project, and wish you all success in future
Regards Steve_W


    On Tuesday, 7 February 2023 at 11:00:03 GMT, pas2js-request at lists.freepascal.org <pas2js-request at lists.freepascal.org> wrote:  
 
 Send Pas2js mailing list submissions to
    pas2js at lists.freepascal.org

To subscribe or unsubscribe via the World Wide Web, visit
    https://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js
or, via email, send a message with subject or body 'help' to
    pas2js-request at lists.freepascal.org

You can reach the person managing the list at
    pas2js-owner at lists.freepascal.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Pas2js digest..."


Today's Topics:

  1. Re: How to insert inline {} (Michael Van Canneyt)
  2. Re: How to insert inline {} (Ondrej Pokorny)
  3. how to add xide and xcomponents package to lazarus
      (Mgr. Janusz Chmiel)


----------------------------------------------------------------------

Message: 1
Date: Mon, 6 Feb 2023 14:30:14 +0100 (CET)
From: Michael Van Canneyt <michael at freepascal.org>
To: Ondrej Pokorny via Pas2js <pas2js at lists.freepascal.org>
Subject: Re: [Pas2js] How to insert inline {}
Message-ID: <alpine.DEB.2.22.394.2302061427001.287683 at home>
Content-Type: text/plain; charset="utf-8"; Format="flowed"



On Thu, 26 Jan 2023, Ondrej Pokorny via Pas2js wrote:

> Hello,
>
> I'd like to use the DateTimePicker from https://getdatepicker.com .
>
> I declared an external class
> ? TJSTempusDominus = class external name 
> 'tempusDominus.TempusDominus'(TJSObject)
> ? public
> ??? constructor new(aElement: TJSElement);
> ??? constructor new(aElement: TJSElement; aOptions: TJSObject);
> ? end;
>
> a simple constructor without options works fine:
>
> ? fDateTimePicker := TJSTempusDominus.new(myElement);
>
> Can I somehow add inline options { my-property: false }?
>
> JS-code:
> window.datetimepicker1 = new tempusDominus.TempusDominus(
> ? document.getElementById('datetimepicker1'), { my-property: false } );

Seems I missed this mail. So a late reply

How I do this usually, using new:

window.datetimepicker1 = new tempusDominus.TempusDominus(
  ? document.getElementById('datetimepicker1'), new(['my-property',false]));

You can recurse:
new([
  'my-property',false,
  'headers', new(
      ['content-type','application/json',
        'authorization','basic ABC'
      ])
    ]);


The new() function exists in the JS unit.

Michael.

------------------------------

Message: 2
Date: Mon, 6 Feb 2023 18:53:13 +0100
From: Ondrej Pokorny <lazarus at kluug.net>
To: pas2js at lists.freepascal.org
Subject: Re: [Pas2js] How to insert inline {}
Message-ID: <d1047d5a-8ddd-b375-3018-9c48f3c458d8 at kluug.net>
Content-Type: text/plain; charset=UTF-8; format=flowed

On 06.02.2023 14:30, Michael Van Canneyt via Pas2js wrote:
> On Thu, 26 Jan 2023, Ondrej Pokorny via Pas2js wrote:
>> Hello,
>>
>> I'd like to use the DateTimePicker from https://getdatepicker.com .
>>
>> I declared an external class
>> ? TJSTempusDominus = class external name 
>> 'tempusDominus.TempusDominus'(TJSObject)
>> ? public
>> ??? constructor new(aElement: TJSElement);
>> ??? constructor new(aElement: TJSElement; aOptions: TJSObject);
>> ? end;
>>
>> a simple constructor without options works fine:
>>
>> ? fDateTimePicker := TJSTempusDominus.new(myElement);
>>
>> Can I somehow add inline options { my-property: false }?
>>
>> JS-code:
>> window.datetimepicker1 = new tempusDominus.TempusDominus(
>> ? document.getElementById('datetimepicker1'), { my-property: false } );
>
> Seems I missed this mail. So a late reply
>
> How I do this usually, using new:
>
> window.datetimepicker1 = new tempusDominus.TempusDominus(
> ?? document.getElementById('datetimepicker1'), 
> new(['my-property',false]));
>
> You can recurse:
> new([
> ? 'my-property',false,
> ? 'headers', new(
> ????? ['content-type','application/json',
> ?????? 'authorization','basic ABC'
> ????? ])
> ?? ]);
>
>
> The new() function exists in the JS unit.

Great, thank you Michael!

I couldn't find it myself and ended up with TJSTempusDominusOptions = 
class external name 'Object'(TJSObject). Now I can make it simpler.

Ondrej



------------------------------

Message: 3
Date: Tue, 7 Feb 2023 10:30:05 +0100
From: "Mgr. Janusz Chmiel" <janusz.chmiel at volny.cz>
To: pas2js discussions <pas2js at lists.freepascal.org>
Subject: [Pas2js] how to add xide and xcomponents package to lazarus
Message-ID: <aaf88c$37vqc at antispam100.centrum.cz>
Content-Type: text/plain; charset="utf-8"

Xide and Xcomponents can not be installed easily and build with Lazarus.
Even when I have tried to use latest stable FPCUP deluxe there are compilation errors.
I have found out, that Xide and Xcomponents are very probably The best opensource solutions to write WEB apps by using Rapid applications developments.
Sure, there is also Pas2widgets components from Helios and his cooperators.
Could somebody prebuild Lazarus with Xide and Xcomponents? It would bring a joy to souls of many Pascal developers.

It is so positive feeling if it is possible to create Web apps by using components list and events list? 
Thank you very much for yours reactions.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/pas2js/attachments/20230207/385fb963/attachment-0001.htm>

------------------------------

Subject: Digest Footer

_______________________________________________
Pas2js maillist  -  Pas2js at lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js


------------------------------

End of Pas2js Digest, Vol 55, Issue 3
*************************************
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/pas2js/attachments/20230207/e589737b/attachment.htm>


More information about the Pas2js mailing list