Recent

Author Topic: [ANN] LiteZarus (alpha)  (Read 19145 times)

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
[ANN] LiteZarus (alpha)
« on: May 25, 2014, 09:27:30 am »
Hi all!


I am developing a Lazarus distro I call it "LiteZarus".
It is an experiment development while I spent my weekend spare time.
This current goal was : to explore possibility of designing non-LCL GUI project using Lazarus.
Which is succeed partially using LiteKit (my customized widgetset/GUI-toolkit  as another hobby project),
and "MyWidgetst" by Mattias Gaertner (found in Lazarus's examples)


Current LiteZarus features:
* based on Lazarus trunk, weekly updated.

* bugfix dragdrop of iconic-component in MyWidgetset/TMyForm. It also a bugfix for another non-LCL.
* bugfix guidline (alignment line) of non-TControl - non-iconic-component in non-LCL form.
* provide icon-image-index that imit LCL component, in Object inpector Component Tree for non-LCL.
* drag-drop non-LCL GUI component as easy as drag-drop TControl based GUI-component.
It was done by using current Lazarus TDesignerMediator, but I explore more of it's possibility by using true widgetset until compiled and run/debug.


Another benefit of supporting non-LCL based widgetset (IMHO) is:
* Allowing registering new non-LCL GUI component to IDE, so that new registered component will be available in Component Palette, which is in turn is to drop in a form.
* Unregister/uninstall non-LCL GUI package as easy as uninstall another Lazarus package.
* Possible to develop HTML widgets, design it within Lazarus, run it as webserver ?
* Possibility of developing miscellaneous designtime GUI object such as UML, database relations, etc.


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


What will and wouldn't:


I will :
* continue develop this distro, in sparetime
* add/improve example applications.
* change the IDE.application.Title, change IDE icon to avoid confusing in which IDE I work.
* change the splash-screen/aboutbox's image.
* continue contribute to Lazarus by sending patch or discuss anything to make Lazarus better
* keep compatibility as possible, but possibly hack some depth to meet my expectation.
* possibly stop development when Lazarus has all similar feature I expected at LiteZarus, or when I have no time to continue the development.
* donate more to freepascal/Lazarus when I reached any donation.




I would not:
* drastically change user experience
* claim that it is mine or made by me entirely.
* remove any tab in aboutbox.
* change the license, hide the license, modify or mix any license.
* delete/hide/move any authors/contributor's name, email, etc.
* delete/hide/move/broke any link (such as documentatio,download,svn)
* hide opensource source (specially GPL/LGPL) code from people.

So every improvement of "my Lazarus" will be available in my repository.
If I were not lazy I will notice you, if I am too lazy then I hope you know



 
Simply, LiteZarus is entirely Lazarus project plus additional experimental support for non-LCL designtime experience.


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


History:
I don't intended to change the name of Lazarus, but It require me to know the distinct of in which IDE I am working with several experimental widgetset I made. I have choosen "Non-LCL Lazarus IDE", but it is bad name. During developing LiteKit, I felt it should be "Lazarus+ LiteKit", and quickly become "LiteLazarus" and shorten as "LiteZarus".


Non-LCL Widgetset Used:
LitePascal was my first widgetset based on PasGF (Pascal Graphical Framework) by Nagy Viktor.
PasGF itself was based on LPTK (Light Pascal Toolkit) by same auathor; which is successfully integrated with Lazarus as form/widget designer. It was the fist experiment where the story just began.
LiteKit is then my next customized widgetset, entirely redesign, based on fpGUI by Graeme.
Unfortunately, both LiteKit and LitePascal aren't ready to be released due they lack in some critical features such as the non-availability in TBitmap streaming (saving to .LFM), TImageList, TCustomAction and so on.
My apologize. I told them to let you know the furthest progress I could reach currently.


-------------------------
Okay,
so far LiteZarus gain only a little step forward Lazarus.
It is still far away for LiteZarus of forcing Lazarus as a real RAD ! But, Rome didn't build in one day, right?


At least, I am satisfied with I did.
But, in case you interesting in same features, tell me what's your opinion.


Any critique, question, suggestion, correction, advice ... are always welcome.




Thanks you.


Best wishes,
x2nie

-------------------------
Note:
* Special thanks to Nagy Viktor, Graeme Geldenhuys, Mattias Gaertner whom help me a lot.
* LiteZarus repository: https://github.com/x2nie/LiteZarus
* Download page: https://github.com/x2nie/LiteZarus/releases
« Last Edit: May 28, 2014, 09:39:46 pm by x2nie »
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Re: [ANN] LiteZarus (alpha)
« Reply #1 on: May 25, 2014, 09:01:18 pm »
Well, I just wanted to thank you for this work and your publishing it on a public repository. Very nice.

Hope you can get many of your fixes/improvements into the main Lazarus version!

Good luck & thanks,
BigChimp
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

exdatis

  • Hero Member
  • *****
  • Posts: 668
    • exdatis
Re: [ANN] LiteZarus (alpha)
« Reply #2 on: May 25, 2014, 09:33:56 pm »
Good luck & thanks ;)

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #3 on: May 27, 2014, 07:54:06 am »
Thanks you BigChimp, thanks you Exdatis. Your appreciation give me more enthusiasm+energy.


Now, I am looking for any approach/idea of using the native non-LCL designer.
It might be used in next milestone (planned 1 year later).


Current LiteZarus use LCL designer (form designer + component designer). It is done by drawing each of non-LCL GUI component upon LCL TForm.canvas via TDesignerMediator. It is fine so far.
But, could we judge it was the best approach without any comparative benchmark?


The nearest thing founded to be compared with TDesignerMediator is LCL designer.
in LCL designer, each widget doesn't require to be rendered into any canvas, so drag/move widget wouldn't flicker.
The furthest comparative designer i can found to TDesignerMediator is VFD-fpGUI-UI-Designer.
It wouldn't flicker when a fpgWidget is being dragged/moved.
Because, that two widgetset is using their own native widget.
(I don't read the MSEGUI-MSEIDE codes yet, but I guess MSEIDE has it's own designer, which is not yet compatible with LCL designer)


====================


So, simply :
  • 1) LiteZarus will still using TDesignerMediator for integrating any non-LCL widgetset to it. In fact, TDesignerMediator is a great feature that eliminate non-needed problem in early stage development.
  • 2) Implementing native-non-LCL designer inside Lazarus (LiteZarus) will reduce more side-effect-bug of integrating them, because each non-LCL widgetset will be provided with exactly enveronment they require.


-------------------
Anyway, LiteZarus is not intended to be the IDE of all non-LCL (such MSEGUI, LPTK), indeed it is possible.
Instead, we can explore/exploit the possibilities of what will be done by using Lazarus
such for HTML page designer or something else that is useful.


Any idea of expanding possibility of using Lazarus as designer / IDE / RAD ?
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

jmpessoa

  • Hero Member
  • *****
  • Posts: 2302
Re: [ANN] LiteZarus (alpha)
« Reply #4 on: May 27, 2014, 03:30:28 pm »
Quote
Any idea of expanding possibility of using Lazarus as designer / IDE / RAD ?

Android!

All  jComponents in "Android Module Wizard" are no-LCL ... just pure FCL!

As "form designer" I use Datamodule form .....

ref. http://forum.lazarus.freepascal.org/index.php/topic,21919.105.html
ref. https://github.com/jmpessoa/lazandroidmodulewizard

Thank you!
Lamw: Lazarus Android Module Wizard
https://github.com/jmpessoa/lazandroidmodulewizard

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #5 on: May 27, 2014, 04:31:55 pm »
Quote
Any idea of expanding possibility of using Lazarus as designer / IDE / RAD ?

Android!

All  jComponents in "Android Module Wizard" are no-LCL ... just pure FCL!
Hey, .. Android? ....why why why... Why not ?!


Quote
As "form designer" I use Datamodule form .....
This is it, "TDataModule" keyword attracts me. During LiteZarus development time, I learn more about TDataModule family (TDesignerMediator, LCLFormDesigner) and how they operate in design-time.

Basically I didn't believe it. I couldn't imagine how the resource-stream (*.lfm) will be used in Java/JNI/Android.
This way, I was not interesting to develop Android designer within Lazarus in before.
Because, AFAIK there is no way to store/load that designed form within later Android.


But now, the usage of TDataModule granted this approach's future.
If we could use TDataModule *.lfm in android, sure we can provide a designer for it.
Then,  after a few minute searching, your screenshots prove it.
http://forum.lazarus.freepascal.org/index.php/topic,21919.msg131336.html#msg131336

So, my apologize of my naive perception.  :-*


So, ? Let's rock!  8-) 8-)  (beside I am totally a newbie in Android development, .. let's rock).

It may take possibly several days before I could report any progress, I need to configure my machine to not conflict between fpc 2.6.4 and fpc 2.71, I need to install your LazAndroidModuleWizard, upgrade JRE/JDK, search a correct USB-Android-Device drivers, try several example demo first, and I need to be familiar with them all.
« Last Edit: May 27, 2014, 05:04:13 pm by x2nie »
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #6 on: May 27, 2014, 06:15:49 pm »
@jmpessoa:


Hi, anyway during my absent (learning your code and Simonsayz)
you can try by yourself to build a simple form-designer by playing the DesignNonLCL in LiteZarus.
https://github.com/x2nie/LiteZarus/tree/litezarus/examples/designnonlcl


There are 1 package (*.lpk) and 1 program (*.lpr). and there is a readme.txt written by Mattias.
In fact, that demo is the only non-LCL widgetset project shipped with current LiteZarus version.
I think you will easily understand the code, as you familiar with creating wizard.  :D


Thanks you
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

jmpessoa

  • Hero Member
  • *****
  • Posts: 2302
Re: [ANN] LiteZarus (alpha)
« Reply #7 on: May 27, 2014, 06:27:49 pm »

Yes, I am installing LiteZarus!

Thank you!



Lamw: Lazarus Android Module Wizard
https://github.com/jmpessoa/lazandroidmodulewizard

jmpessoa

  • Hero Member
  • *****
  • Posts: 2302
Re: [ANN] LiteZarus (alpha)
« Reply #8 on: May 27, 2014, 07:09:17 pm »
Ok. I am using  Windows...

I unzip it! but now, how I will get my lazarus.exe?

Thank you!
Lamw: Lazarus Android Module Wizard
https://github.com/jmpessoa/lazandroidmodulewizard

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #9 on: May 27, 2014, 07:13:46 pm »
Ok. I am using  Windows...

I unzip it! but now, how I will get my lazarus.exe?
see
http://forum.lazarus.freepascal.org/index.php/topic,24387.msg146904.html#msg146904


Edit:
* You need fpc v2.6.4 (binary and source), let say it is placed in C:\fpc\2.6.4\bin\win32

   In this directory you can find a lot of exes (make, grep, ppc386, and so on).


*  Open a command line. Start->Run...>command or choose MS-DOS icon.
*  Type:
Code: [Select]
     cd c:\litezarus
     rem of course adjust to your path:
     set path=c:\fpc\2.6.4\bin\win32;c:\litezarus 
     make
 
 
  If you are lucky then you can type: lazarus.exe
« Last Edit: May 27, 2014, 07:23:32 pm by x2nie »
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

howardpc

  • Hero Member
  • *****
  • Posts: 4144
Re: [ANN] LiteZarus (alpha)
« Reply #10 on: May 27, 2014, 08:47:49 pm »
I'm unlucky. When I follow those instructions I get this:
Code: [Select]
...
Compiling lazbuild.lpr
lazbuild.lpr(877,76) Error: Wrong number of parameters specified for call to "Execute"
lazbuild.lpr(889,72) Error: Wrong number of parameters specified for call to "Compile"
lazbuild.lpr(902,76) Error: Wrong number of parameters specified for call to "Execute"
lazbuild.lpr(1702) Fatal: There were 3 errors compiling module, stopping

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #11 on: May 28, 2014, 06:22:38 am »
@howardpc:
1) would you like to tell me about :
   - which fpc version you are using? it is recommended using fpc 2.6.4[size=78%]   [/size]
   - full directory where is your fpc 2.6.4
   - I never meet that error, so if you are sure following the installation steps, I assumed you got the same error when compiling Lazarus trunk


2) Ouch, maybe I were wrong when tracking the Lazarus trunk,
    Now I get the idea of creating another LiteZarus that is derivated from Lazarus 1.2.2, which is stable and is recommended for production. I will try it in my spare time.


@jmpessoa:
  Did you meet same trouble as howardpc found?
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

jmpessoa

  • Hero Member
  • *****
  • Posts: 2302
Re: [ANN] LiteZarus (alpha)
« Reply #12 on: May 28, 2014, 06:45:06 am »
Yes. But My attempt was with Lazarus 1.1 and FPC 2.7.1. [laz4Android]. So I hack "FormEditingIntf.pas"  with the  changes proposed in your code, and so I managed to install "notlcldesigner.lpk" from  /designnonlcl and run "NonLCL1.lpi" from  /designnonlcl/project ... but I do not got some bugfix: guidline and others... why?

Thank you!

Lamw: Lazarus Android Module Wizard
https://github.com/jmpessoa/lazandroidmodulewizard

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #13 on: May 28, 2014, 07:41:06 am »
@jmpessoa:
My modification is not with single unit, I hack several units and many directories:
* "ide"
* "component\ideintf"


You also need to modify (or copy-paste) the DesignNonLCL too,
because there is few change required, to run that project correctly.
-------------------


While I was not busy, I will create a patch for Lazarus 1.1, and Lazarus 1.2.2
from my entire modification.


Thanks you
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

howardpc

  • Hero Member
  • *****
  • Posts: 4144
Re: [ANN] LiteZarus (alpha)
« Reply #14 on: May 28, 2014, 11:34:02 am »
@howardpc:
1) would you like to tell me about :
   - which fpc version you are using? it is recommended using fpc 2.6.4[size=78%]   [/size]
   - full directory where is your fpc 2.6.4

I used fpc 2.6.4 on a Win7 machine, and the full path to fpc was
c:\lazarus\fpc\2.6.4\bin\i386-win32\

 

TinyPortal © 2005-2018