Recent

Author Topic: Help Needed(Closed)  (Read 8935 times)

dbannon

  • Hero Member
  • *****
  • Posts: 2786
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Help Needed
« Reply #30 on: March 07, 2021, 12:17:20 am »
JL, a bit of philosophy. Take it or leave it.

I consider myself a moderately capable programmer, most certainly not advanced or 'skilled' but enough to do what I want to do. I have got there by dogged hard work, pretty much the same as you. And you can do that with programming, we do it a lot slower than a pro, we spend  lot of time looking things up, looking at other people's code and just looking at our code wondering ...

But the truth is that approach does not work for a UI.  You cannot just keep working at it, trusting you will eventually get it right. In fact, UI design is a totally different skill set. Don't assume you can create a good UI just because you can write code,

With my project, I have had a lot of help from (non-programmer) people who have a much greater feel for UI than I can ever have. After a initial "kek ?" I have welcomed their input and acted on it. Graciously.

As a model, it works. Please consider.

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

JLWest

  • Hero Member
  • *****
  • Posts: 1293
Re: Help Needed
« Reply #31 on: March 07, 2021, 02:46:45 am »
Well it's confusing yo me also.

But here is how I look at it.

I realize it needs a lot of change to the code to really be good code. But, having said that consider the intended user. Beginners, so I wanted code that a novice could understand. 

Alltag.txt is created every time the program is started. It contains all the Tags on the system with a Tag/sbdirectory or Tag/doublex . A Tag/doublex denotes a sub menu where a Tag/content is a top level tag item.

Click on ACtiveControl and you get the syntax for ActiveControl. Click on Arrays and you get function related to arrays. Click the SUB button and you go back to the top level menu.

When a Tag is selected a red X is suppose to appear to the left of the Tag but it's broke.


MM.txt is a static file and is the top level of the display tags. It changes when you add a Sub, new tag to the top level rename deletes.

I'll download and test QLProper.
Thank you
« Last Edit: March 07, 2021, 03:14:02 am by JLWest »
FPC 3.2.0, Lazarus IDE v2.0.4
 Windows 10 Pro 32-GB
 Intel i7 770K CPU 4.2GHz 32702MB Ram
GeForce GTX 1080 Graphics - 8 Gig
4.1 TB

JLWest

  • Hero Member
  • *****
  • Posts: 1293
Re: Help Needed
« Reply #32 on: March 07, 2021, 03:46:26 am »
I downloaded and looked a QLProper.

After considering all option at this point I think I will abandon the project. I'll use it privately. For me it works great. For others not so much I guess.

Thanks for all the comments and help.
FPC 3.2.0, Lazarus IDE v2.0.4
 Windows 10 Pro 32-GB
 Intel i7 770K CPU 4.2GHz 32702MB Ram
GeForce GTX 1080 Graphics - 8 Gig
4.1 TB

Gustavo 'Gus' Carreno

  • Hero Member
  • *****
  • Posts: 1111
  • Professional amateur ;-P
Re: Help Needed
« Reply #33 on: March 07, 2021, 03:50:11 am »
I realize it needs a lot of change to the code to really be good code. But, having said that consider the intended user. Beginners, so I wanted code that a novice could understand. 

I'm really sorry about what I'm gonna tell you next, but I think you need to read it and hopefully incorporate it into your coding context.

After reading your code and looking at your UI decisions, the only thing that comes to mind is that your skills got suspended in time from when terminals with 80 columns by 40 rows of text was the default UI.
You make UI decisions with complete disregard to the most basic functionalities of a TButton like it was just a rectangle in the screen that you click and nothing else.
You add functionality to TLabel, that was never intended, or discussed, in any meeting about User eXperience(UX) on any Graphical User Interface(GUI).
You make convoluted chained calls, 3 to 4 levels deep, to functions/procedures with very cryptic names.
Nowadays, for the sake of readability, every function/procedure has a long descriptive name so Beginners/Novices can read the code with ease.

Alltag.txt is created every time the program is started. It contains all the Tags on the system with a Tag/sbdirectory or Tag/doublex . A Tag/doublex denotes a sub menu where a Tag/content is a top level tag item.

This explanation does not make sense with the evidence I'm finding on the files. But I need to dive deeper in your rats nest of chained functions/procedures.

Click on ACtiveControl and you get the syntax for ActiveControl. Click on Arrays and you get function related to arrays. Click the SUB button and you go back to the top level menu.

I got that already, and to get at it I had to chase down every function/procedure where you LowerCase() paths, because it was messing all the file reads!!
You can see on QLProper that I load level 1 info correctly.

When a Tag is selected a red X is suppose to appear to the left of the Tag but it's broke.

I noticed some inconsistencies on this, but the fact that the UI never informs you about it's state, doesn't help at all.

MM.txt is a static file and is the top level of the display tags. It changes when you add a Sub, new tag to the top level rename deletes.

This is implemented like it should on QLProper on level 1 data. Need to get to level 2 data next.

I'll download and test QLProper.

Good. Have a good look and tell me if it isn't easier to use.


In summary what you're doing is nothing more than a note taking app with 2 level of hierarchy based on text files and folders for the database.
It's nothing new and it's been implemented in so many ways that you can find a gazillion examples on the web.
You spent all this time and you don't even have a basic search function.
You have no data structure what so ever apart from the data residing inside TListBoxes.
You clear those TListBoxes frequently, so your data is quite volatile.

All these little faults are ironed out by any, most basic, tutorial or online course for programming.
Any online tutorial/course hammers the fact that you code against robust data structures. Or a database.
Every online tutorial/course is now heavily based on solid Object Oriented Programming(OOP).
Your code has none of that and on top of it, it is very hard to follow.
It's so dense that even a moderately knowledgeable programmer gets lost, so a beginner would completely drown.
Your insitance that it as to me "my way" is just a projection of your fear towards innovation.
You don't want to learn. Because for you to begin to learn, you would have to admit that what you know is dated and obsolete.
That would mean that you would have to invest a ton of time doing something that was hard the first time around, when you were young, and now is triple hard that you're old.
So you pull the age card and hope that no one notices that you're just a stubborn dinosaur.

I really advise you to Google "Note taking app with source code", or to search for something like that on GitHub.
It will make you some good to look at UI choices made by others so you can freshen up your GUI skills. They are quite lacking, I'm afraid.

Cheers,
Gus
Lazarus 3.99(main) FPC 3.3.1(main) Ubuntu 23.10 64b Dark Theme
Lazarus 3.0.0(stable) FPC 3.2.2(stable) Ubuntu 23.10 64b Dark Theme
http://github.com/gcarreno

 

TinyPortal © 2005-2018