Recent

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

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (rc1)
« Reply #15 on: May 28, 2014, 09:29:06 pm »
Hi all,


I provide 2 more easier way of getting LiteZarus improvement for your Lazarus.
1. patch file. It can be used with Lazarus trunk (current Lazarus 1.3 dev), but it's main target is Laz 1.2.2
2. files replacement. It is perfect for your Lazarus 1.2.2 quick installation.


If you don't know what to do with the first option, then it is mostly not for you.
The second way is easy to install. Just download the zip, extract, and copy paste to your Lazarus installatiion directory.
If you need to review about which line/file/directory of Lazaru will be modified by the Lite,
 now it is possible; you may need to use WinMerge (or any compare software like taaz said in this topic).

Note:
Don't be confused with the "Source Code.zip", this one is the full sourcode.
So, If you need the only replacement files, please download the "LiteZarus.1.0.rc1-Lazarus_1.2.2-replacement.zip"


You can dowload both file (plus full current development source code) here:
https://github.com/x2nie/LiteZarus/releases


any comment and test-report would be very welcome  8-)
« Last Edit: May 28, 2014, 11:09:20 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 #16 on: May 29, 2014, 01:28:23 pm »
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?
Hi,
I couldn't find Lazarus 1.1 anywhere in freepascal's repository. Would you like to correct the version of Lazarus you are using? or give me any url to download Lazarus 4 Android distro. ?
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

jmpessoa

  • Hero Member
  • *****
  • Posts: 2297
Re: [ANN] LiteZarus (alpha)
« Reply #17 on: May 29, 2014, 04:44:47 pm »
OK.

 https://skydrive.live.com/?cid=89ae6b50650182c6&id=89AE6B50650182C6%21149

there is a "build.bat" in this package, please, configure your path for laz4android!

ex: SET FPC_BIN_PATH=C:\laz4android

Thank you!

PS. You can use a  "build.bat" like this for LiteZarus!
Lamw: Lazarus Android Module Wizard
https://github.com/jmpessoa/lazandroidmodulewizard

CaptBill

  • Sr. Member
  • ****
  • Posts: 435
Re: [ANN] LiteZarus (alpha)
« Reply #18 on: May 31, 2014, 05:30:09 am »
What version fpc is currently recommended for LiteZarus on Linux (Tinycore gtk2 Xorg7.6)? Should I get trunk or a 2.7.1 branch?

It compiles successfully with fpc 2.6.2 as a bootstrap(or seems to anyway). It complains about not seeing "intdef", as expected. Of coarse I will probably need to re-compile starting with the right fpc version. Which do you recommend?

 
« Last Edit: May 31, 2014, 05:44:04 am by CaptBill »

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #19 on: May 31, 2014, 08:41:44 am »
Hi CaptBill,
My last update: We have 2 production line (because I still have problem to merge them into single) product.
Each line intended to use different fpc.


1 LiteZarus v1.0, it is based on Lazarus trunk, recommend to use fpc 2.6.4


2. LiteZarus v1.0.l4a, this one perfectly for use with fpc 2.7.1 (which is required for developing Android)



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

jmpessoa

  • Hero Member
  • *****
  • Posts: 2297
Re: [ANN] LiteZarus (alpha)
« Reply #20 on: June 02, 2014, 02:17:45 am »

Quote
...I think you will easily understand the code, as you familiar with creating wizard.

Ok, x2nie!  :D

Now "LiteZarus"  may also have a Wizard for Not LCL Widgets! 

The complete "Lazarus Not LCL PlainWidgets Wizard" code is attached [*.rar]!

Have Fun!

Thank you!



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

jmpessoa

  • Hero Member
  • *****
  • Posts: 2297
Re: [ANN] LiteZarus (alpha)
« Reply #21 on: June 02, 2014, 11:37:26 am »
Hi,

"Not LCL PlainWidgets Wizard"  Rev. 01. - Fix Support to Library!

Complete code is attached [*.rar]!

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 #22 on: June 04, 2014, 07:19:53 am »
Hi...


@Jmpessoa: Nice. You found a bug that any event (and properties) in Non-LCL is not automatically loaded !! What's wrong?
It is normal, since the event is stored in *.LFM and your widgetset is inherited from TComponent (not TForm).
This way, we need to tell your root component (TPlainForm) to load that events/properties from stream (*.lfm).
It will be done by calling InitInheritedComponent once in TPlainForm since your *.lfm is for TPlainForm.

It is required to be introduced once, and next ancestor of your form will always load them automagically.



Explanation:
your code:

Code: [Select]
constructor TPlainForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  if not (csDesigning in ComponentState) then
     if Assigned(FOnCreate) then FOnCreate(Self);  //fail... why?
end;


destructor TPlainForm.Destroy;
begin
  if not (csDesigning in ComponentState) then
     if Assigned(FOnDestroy) then FOnDestroy(Self);  //fail... why?
  inherited Destroy;
end;


need to modify to:
Code: [Select]
constructor TPlainForm.CreateNew(AOwner: TComponent);
begin
  inherited Create(AOwner); //don't load stream
end;


constructor TPlainForm.Create(AOwner: TComponent);
begin
  CreateNew(AOwner); //no stream loaded yet.


  //now load the stream
  if not InitInheritedComponent(Self, TPlainForm) then
    //raise EResNotFound.CreateFmt(rsResourceNotFound, [ClassName]);
end;


destructor TPlainForm.Destroy;
begin
  inherited Destroy;
end;


procedure TPlainForm.AfterConstruction;
begin
  inherited AfterConstruction;
  if not (csDesigning in ComponentState) then
     if Assigned(FOnCreate) then FOnCreate(Self); 
end;


procedure TPlainForm.BeforeDestruction;
begin
  inherited BeforeDestruction;
  if not (csDesigning in ComponentState) then
     if Assigned(FOnDestroy) then FOnDestroy(Self); 
end;
[code]
----------------------------------


Anyway, your wizard is very good.
I will merge it into LiteZarus when it had has real visual widgetset in runtime.

Thanks you!


x2nie.

===========================
PS:
 attached below is my modification + demo of loaded event (notify event) in runtime.


Edit:
 add screenshot
« Last Edit: June 04, 2014, 07:31:22 am by x2nie »
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

jmpessoa

  • Hero Member
  • *****
  • Posts: 2297
Re: [ANN] LiteZarus (alpha)
« Reply #23 on: June 04, 2014, 01:07:54 pm »
Yikes!

this bug haunts me a long time! Now I'm ready to experiment "Android Module Wizard" for LiteZarus! Wait!

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

mWaltari

  • New Member
  • *
  • Posts: 15
Re: [ANN] LiteZarus (alpha)
« Reply #24 on: December 29, 2014, 12:04:28 pm »
Hello x2nie! Keep up with good Work! ;)

-Tee-

mercury

  • Full Member
  • ***
  • Posts: 154
Re: [ANN] LiteZarus (alpha)
« Reply #25 on: February 22, 2015, 03:30:06 am »
May I ask what are the advantages compare with LCL.

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #26 on: February 22, 2015, 12:49:14 pm »
May I ask what are the advantages compare with LCL.


It's intended to has of all of default lazarus (LCL) has.
Beside, it open the hole which is allowance of non-lcl project being designed visually using known Form Designer.
I repeat : in "design time".
While at runtime, non-LCL project is fully independent from LCL.


So, the benefit are (included but not limited to) :
* the non-lcl project will run in runtime (debug-time) as they are designed: no dependency to LCL.
* you can register non-lcl component wich are will be displayed in Lazarus Component Palette
* you can drop that component into your form, just like LCL project designing behavior
* you can drag, move, resize, and setting all published properties of your non-lcl visual component, just like usually you are using LCL component.
* you can debug non-lcl project using it. (as identical as Lazarus able to).




Next, the disadvantage :
* You can't use any non-LCL components mixed with LCL project. But, probably you can use the otherwise.
* You must provide your own visual components per each non-LCL-project-root basis.
   Let say: jmpessoa provides his own components (visual+non visual) for Android only which not applicable outside Android.


------------------------
I am worry about the meaning of "compare with LCL" of your question.
If you mean is Non-LCL vs LCL, then the advantage is :
* It is easier to deploy your very own visual project compared to port your existing visual project into new widgetset (LCL).
Otherwise, you don't need non-LCL. Using available LCL widgetsets is easier, then.


I hope it satisfied your curiosity.


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

mercury

  • Full Member
  • ***
  • Posts: 154
Re: [ANN] LiteZarus (alpha)
« Reply #27 on: February 28, 2015, 12:22:42 pm »

So, the benefit are (included but not limited to) :
* the non-lcl project will run in runtime (debug-time) as they are designed: no dependency to LCL.
* you can register non-lcl component wich are will be displayed in Lazarus Component Palette
* you can drop that component into your form, just like LCL project designing behavior
* you can drag, move, resize, and setting all published properties of your non-lcl visual component, just like usually you are using LCL component.
* you can debug non-lcl project using it. (as identical as Lazarus able to).


These all LCL have. I mean what are the benefit only LiteZarus have.



* It is easier to deploy your very own visual project compared to port your existing visual project into new widgetset (LCL).
Otherwise, you don't need non-LCL. Using available LCL widgetsets is easier, then.


Sorry I still don't understand.

PS.. I try to build it, but it says:
Code: [Select]
Makefile:29: *** You need the GNU utils package to use this Makefile.  Stop.

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: [ANN] LiteZarus (alpha)
« Reply #28 on: March 05, 2015, 05:32:39 pm »
These all LCL have. I mean what are the benefit only LiteZarus have.


Well, the answer for your question would be divided into 2 part:
1. What LiteZarus shall have (indeed a dream).
2. What LiteZarus currently had have (development progress).


Let start from it's story.
  • * When Paul Breneman introduced his EasyFpGui project, I think that was promising project in the way of simplicity of install and use, and its visual object capability (form, button, combobox, etc). It invite my curiosity to learn fpGUI.
  • In the same time, I found the fact that AGGPas (pascal version of AntiGrain Geometry) could run outside Lazarus. I also take a chance of how MSEGUI works with only FreePascal.
  • * These (3 comparable to Lazarus app) turn into conclusion (of my own perspective) that working directly with compiler (freepascal) is also great in simplicity cases.
  • By small amount of their codes (relatively), everything is easily under  my control. You may download and try the EasyFpGui to know what I mean.
  • And, Yes, it let me going to developing more complex application ontop AggPas and fpGUI. But I lost some [size=78%][/size]key features that Delphi/Lazarus have had such changing form's icon, [size=78%][/size]easiness of setting custom button's glyph, install/uninstall new visual component and so on
  • So, my chance is to develop fpGUI application inside Lazarus!
    Well, indeed you can develop fpGUI using Lazarus (both non-LCL and LCL/fpGuiWidgetset),
    but you can't use Lazarus Form designer for it. you couldn't use Lazarus's Property Inspector for fpGUI widgets.
  • Finally, my first breakthrough is letting it happens for first time, by forking fpGUI codebase to have more Delphi's dialect such loading/storing component's properties within identical *.dfm/*.lfm file.
  • Well, fork is bad for the community, I know. I did this because I shall break the compatibility with the original fpGUI, which mean also of broken bugfixed stability.
    I did it for exercise.
Now, the answer:
1.  Using LiteZarus/Lazarus shall allow us to design non-LCL form using their own form/widgetsets. It's big dream, and it's hard because currently LiteZarus uses LCL's Form designer in design time.
It shall also be smart enough to show components for the respective active form. (for example MSEGUI's button should be shown only when the active form is MSEGUI's form/data module as well as other project that doesn't require LCL units).
The idea is come from the fact Delphi allows us to compile both VCL & CLX. When Delphi works with CLX form, the component palette always display the CLX components.
It's doesn't yet happen, and we need to simulate non-LCL widgetset inside LCL form designer, --which is in some case doesn't work. (For example: designing non-lcl's TabPage)




2. For honest, nowadays LiteZarus is just in Proof Of Concept stage.
It works fine with non-LCL - non-nested component. But, It still lack some of it's key features needed, because Delphi seem as using COM to switch between VCL & CLX, and I don't know how to implement that on LiteZarus. Once it's been resolved, LiteZarus/Lazarus will be a trully RAD/IDE for both non-LCL & LCL.


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


* It is easier to deploy your very own visual project compared to port your existing visual project into new widgetset (LCL).
Otherwise, you don't need non-LCL. Using available LCL widgetsets is easier, then.


Sorry I still don't understand.


Well, probably you LiteZarus is not for you. Not every music is suitable for every people.
If so, please go around, try to switch your LCL widgetset to other, and back here later.
-----
PS.. I try to build it, but it says:
Code: [Select]
Makefile:29: *** You need the GNU utils package to use this Makefile.  Stop.



Okay, don't worry. First, try to compile/run Lazarus (not LiteZarus) from source-code. It will easier to ask somebody here about compiling Lazarus. Once it solved, LiteZarus will be also no problem for your machine.


Thank's for ask us.
x2nie
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

 

TinyPortal © 2005-2018