Recent

Author Topic: Modern UI in Lazarus  (Read 190343 times)

mse

  • Sr. Member
  • ****
  • Posts: 286
Re: Modern UI in Lazarus
« Reply #150 on: May 31, 2017, 02:03:22 pm »
    And it looks like there's no 'easy' way :P
    What I understand by modern UI, apart from the looks is:

    • ability to nest one element in another without much restriction to their type (i.e place panel in label)
    In MSEgui there is a single TWidget type, there is no distinction between TGraphicControl and TWinControl like in Delphi.
    http://wiki.freepascal.org/MSEide_&_MSEgui#Architecture_overview
    Quote
    • elements have pivot and anchors and can adjust when parent is being resized (and I mean every element not some)
    MSEgui supports it and AFAIK Lazarus and fpGUI too.
    Quote
    • scale, rotate elements
    All three support component scaling AFAIK. MSEgui can rotate text by the text flags tf_rotate90, tf_rotate180.
    Quote
    • dynamic font size as a bonus
    MSEgui has virtual fonts for the purpose, fpGUI has a similar concept AFAIK, Lazarus I don't know.
    Quote
    • easily build your own components by stacking together bunch of primitive ones (which requires all of the above)
    MSEide allows to store ad hoc combined widgets in "component store" for future reuse.[/list]

    Thaddy

    • Hero Member
    • *****
    • Posts: 14204
    • Probably until I exterminate Putin.
    Re: Modern UI in Lazarus
    « Reply #151 on: May 31, 2017, 02:28:46 pm »
    So... basically.... a frame?
    Specialize a type, not a var.

    laggyluk

    • Jr. Member
    • **
    • Posts: 69
    Re: Modern UI in Lazarus
    « Reply #152 on: May 31, 2017, 02:58:53 pm »
      And it looks like there's no 'easy' way :P
      What I understand by modern UI, apart from the looks is:

      • ability to nest one element in another without much restriction to their type (i.e place panel in label)
      In MSEgui there is a single TWidget type, there is no distinction between TGraphicControl and TWinControl like in Delphi.
      http://wiki.freepascal.org/MSEide_&_MSEgui#Architecture_overview
      Quote
      • elements have pivot and anchors and can adjust when parent is being resized (and I mean every element not some)
      MSEgui supports it and AFAIK Lazarus and fpGUI too.
      Quote
      • scale, rotate elements
      All three support component scaling AFAIK. MSEgui can rotate text by the text flags tf_rotate90, tf_rotate180.
      Quote
      • dynamic font size as a bonus
      MSEgui has virtual fonts for the purpose, fpGUI has a similar concept AFAIK, Lazarus I don't know.
      Quote
      • easily build your own components by stacking together bunch of primitive ones (which requires all of the above)
      MSEide allows to store ad hoc combined widgets in "component store" for future reuse.[/list]
      sounds like it's only flaw is looking like it's '90 again

      Paul_

      • Full Member
      • ***
      • Posts: 143
      Re: Modern UI in Lazarus
      « Reply #153 on: May 31, 2017, 04:03:06 pm »
      Somehow I can't imagine it. Can you show how your dreamed GUI looks in Unity or in UE?
      And what should the app do?




      laggyluk

      • Jr. Member
      • **
      • Posts: 69
      Re: Modern UI in Lazarus
      « Reply #154 on: May 31, 2017, 04:54:55 pm »
      Somehow I can't imagine it. Can you show how your dreamed GUI looks in Unity or in UE?
      And what should the app do?
      https://play.google.com/store/apps/details?id=com.laggyluk.tabster

      For example. First I've tried to make it in Lazarus but ended up using Unity. And for the better, single click deployment for multiple platforms. This still is programmer art but I pretty much achieved what I was after.


      mse

      • Sr. Member
      • ****
      • Posts: 286
      Re: Modern UI in Lazarus
      « Reply #155 on: May 31, 2017, 05:19:11 pm »
      sounds like it's only flaw is looking like it's '90 again
      It's completely up to you or your designer how it looks. Please remember TFrame, TFace, TFrameComp, TFaceComp, TFaceList and TSkinController.

      sky_khan

      • Guest
      Off-topic
      « Reply #156 on: May 31, 2017, 05:20:41 pm »

      lainz

      • Hero Member
      • *****
      • Posts: 4460
        • https://lainz.github.io/
      Re: Modern UI in Lazarus
      « Reply #157 on: May 31, 2017, 05:26:15 pm »
      Somehow I can't imagine it. Can you show how your dreamed GUI looks in Unity or in UE?
      And what should the app do?
      https://play.google.com/store/apps/details?id=com.laggyluk.tabster

      For example. First I've tried to make it in Lazarus but ended up using Unity. And for the better, single click deployment for multiple platforms. This still is programmer art but I pretty much achieved what I was after.

      I want to try the windows version, but I can't find it on your website.

      I also use Unity, for games, and I like also the simplicity to make it cross platform with just switching the target and 'build', but not played too much with the UI features, but I can understand is not so easy. Well in fact making an UI is not easy, you need always a right tool to make it, a framework or something else, maybe in the Unity store there's something to do it more quickly or less painfull.

      But better than the Android designer is, I tried to make something with it like I do with html and was painfull and I did not reach my goal.

      I think you can do that in lazarus with BGRABitmap, at least withouth testing your app only seeing what it looks, but is not as simple as in unity :) So even Unity is easier to use for this UI.

      Handoko

      • Hero Member
      • *****
      • Posts: 5131
      • My goal: build my own game engine using Lazarus
      Re: Modern UI in Lazarus
      « Reply #158 on: May 31, 2017, 05:43:30 pm »
      Unity game engine is primarily used to develop games, they put efforts on appearance. So no wonder their UI is easy to use and looks good.

      Lazarus and Free Pascal is general purpose programming tool. As its motto says "write once, compile anywhere", they put efforts on cross-platform and cross compiling. Also because Delphi has big influence in Pascal world, Lazarus/FPC put some efforts too to adopt and make it compatible with Delphi features.
      « Last Edit: May 31, 2017, 06:01:58 pm by Handoko »

      laggyluk

      • Jr. Member
      • **
      • Posts: 69
      Re: Off-topic
      « Reply #159 on: May 31, 2017, 05:58:28 pm »
      https://play.google.com/store/apps/details?id=com.laggyluk.tabster
      It says there is a windows version on your website but I cant see it there ?
      Forgot to update the description, my website no longer hosts it.
      here's link to windows build but it's older than android version.
      http://laggyluk.com/files/Tabster_win_0.33.zip


      laggyluk

      • Jr. Member
      • **
      • Posts: 69
      Re: Modern UI in Lazarus
      « Reply #160 on: May 31, 2017, 06:19:32 pm »
      Unity game engine is primarily used to develop games, they put efforts on appearance. So no wonder their UI is easy to use and looks good.

      Lazarus and Free Pascal is general purpose programming tool. As its motto says "write once, compile anywhere", they put efforts on cross-platform and cross compiling. Also because Delphi has big influence in Pascal world, Lazarus/FPC put some efforts too to adopt and make it compatible with Delphi.
      Yeah I get that. But I also think that it is important to be able to make software look good and modern if need be. In the end why devs work on Lazarus for free? Because it's fun for them and they create something that other people want to use. And I think more people would use it if result would be more pretty  :-*

      Paul_

      • Full Member
      • ***
      • Posts: 143
      Re: Modern UI in Lazarus
      « Reply #161 on: May 31, 2017, 08:28:31 pm »
      @laggyluk thank you for example.

      As Lainz said, you can do same app with BGRA + standart components. Perhaps creation in Unity is faster and more user friendly, you can also say: "making games in Unity is 1000x simpler than in C++" but I don't know if it can be compared in this way. You will find the limits very soon. On the other hand, if you know programming language there will be no big difference if we speak about Windows/Linux desktop app.

      My BGRA example:
      https://i.imgur.com/CLfXbjs.png

      What could be better in combination Lazarus/BGRA and UI design:
      - standardization of BGRAcontrols, more components, better work with "canvas" etc.
      - special window where you can quickly define component design- colors, size, labels, fonts (now you must such search and search in object inspector, e.g. define every button state, it's very slow)
      - working pre-defined styles/designs and their application to existing components
      - make anchoring and placement on Form much simpler and faster

      But it is non-commercial product, people put their free time into it. That's big difference. Engines as Unity or UE, which are here for years and which are really expensive on development had no proper UI until last 1-3 years? Before there was maybe menu button, healthbar a ammunition counter.. :) And they still have a problems with some things - it's very hardware-intensive render GUI in games, DPI & scaling or so.






      laggyluk

      • Jr. Member
      • **
      • Posts: 69
      Re: Modern UI in Lazarus
      « Reply #162 on: May 31, 2017, 11:05:16 pm »
      My BGRA example:
      https://i.imgur.com/CLfXbjs.png

      But it is non-commercial product, people put their free time into it. That's big difference. Engines as Unity or UE, which are here for years and which are really expensive on development had no proper UI until last 1-3 years? Before there was maybe menu button, healthbar a ammunition counter.. :) And they still have a problems with some things - it's very hardware-intensive render GUI in games, DPI & scaling or so.
      Cool, where can I check out your game?

      As you've said, those game engines got their new UI subsystems quite recently but similarly  to Firemonkey they show that UI design process and results can be better than they used to be.

      Paul_

      • Full Member
      • ***
      • Posts: 143
      Re: Modern UI in Lazarus
      « Reply #163 on: June 01, 2017, 12:52:51 am »
      This is only "launcher" for one old game. Anyway BGRA is fine and there is potencial how you can have modern style.

      (I'm making game but it's at the beginning so far :))



      « Last Edit: June 01, 2017, 01:13:13 am by PaulG »

      cbsistem

      • New Member
      • *
      • Posts: 39
      Re: Modern UI in Lazarus
      « Reply #164 on: November 20, 2017, 01:35:06 pm »
      you could use RAUDUS, it has several visual themes.

      check out http://raudus.com

      Cristiano

       

      TinyPortal © 2005-2018