Recent

Author Topic: Aesthetic bugfix of Lazarus's Component Palette  (Read 42243 times)

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Aesthetic bugfix of Lazarus's Component Palette
« on: April 26, 2014, 11:08:23 pm »
Hi !  :)


I've made a little modification in aesthetic aspect for Lazarus's Components Palette.


I can't go to bugtracker,
I've no much time yet to try and learn of how to create a manual patch,
So I send the code (2 x .PAS) here.


The idea is to add "margin" around the component list within Component Palette PageControl.
But, I also add a few other bugfixes such when the component list being resized / scrolled.


In theory, we only need to increase the BorderSize / BorderWidth of the ComponentLIst scrollbox.
But, it wouldn't happen since the borderwidth is ignored by any children that is Align=alClient.


We can solve it by adding a non-ignored border, with inserting a TPanel between the scrollbox and it's parent.


I wish it would help somebody who need to see improvement of aesthetic side of Lazarus.


Thanksyou for reading.  8-)


Regards,
x2nie

« Last Edit: April 26, 2014, 11:20:53 pm by x2nie »
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

Blaazen

  • Hero Member
  • *****
  • Posts: 3237
  • POKE 54296,15
    • Eye-Candy Controls
Re: Aesthetic bugfix of Component Palette
« Reply #1 on: April 26, 2014, 11:18:50 pm »
Quote
I've no much time to learn of how to create a manual patch,
so I send the code (2 x .PAS) here.

Code: [Select]
svn diff components/ideintf/formeditingintf.pas ide/componentpalette.pas > mypatch.diff
EDIT: And link, of course: http://wiki.freepascal.org/Creating_A_Patch
« Last Edit: April 26, 2014, 11:23:52 pm by Blaazen »
Lazarus 2.3.0 (rev main-2_3-2863...) FPC 3.3.1 x86_64-linux-qt Chakra, Qt 4.8.7/5.13.2, Plasma 5.17.3
Lazarus 1.8.2 r57369 FPC 3.0.4 i386-win32-win32/win64 Wine 3.21

Try Eye-Candy Controls: https://sourceforge.net/projects/eccontrols/files/

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #2 on: April 26, 2014, 11:53:45 pm »
Thanks for the link, friend.
It helps me.


Very Nice, I have cleaned up the dead code, such as var "Rows" which is not necessary any longer.


So, what's next?
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #3 on: April 27, 2014, 12:10:05 am »
Great to see you taking an interest.

I can't go to bugtracker,

Why? What reason?


1)  Balancing the margin, I assume this is done by

The main ide bar window can be adjusted in size (because Sizes of some elements actually differ in different widgetset (gtk, win, qt, carbon).
Therefore:  any fixed margin will fix it for some people and break it for others. (Have you tested your margin on different widgetset?)

Also, since the scrollbox will resize to multi-line (if needed) and then glyphs are aligned to the top, I do think there is no problem with them being top aligned all the time.
IMHO it would be akward if they where sometimes centered (single line) and other time top aligned. (My 2 cents)


2) The "mouse/selection" pointer-button:

You are right this should not scroll. But your solution is not ideal either. Why adjusting its top coordinate on scroll. It should not be in the scroll box at all (same as the "list all tabs dropdown" button on the right hand site)



x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #4 on: April 27, 2014, 04:51:13 am »
Great to see you taking an interest.

1)  Balancing the margin, I assume this is done by

The main ide bar window can be adjusted in size (because Sizes of some elements actually differ in different widgetset (gtk, win, qt, carbon).
Therefore:  any fixed margin will fix it for some people and break it for others. (Have you tested your margin on different widgetset?)
I can't go to bugtracker,
Why? What reason?

1) The good reason is because "we" need to do several test before proposing the patch to Lazarus team. Including test on "different" widgetset.
And I love to see other people report whether it is also fine in QT/GTK, etc. Due I only have GDI widgetset in my machine.
But, My real reason is: I never do that. I don't know how and where to report bugtracker. You know, often the difficult thing is in the first trying: how, why, when, where...
For example: Creating patch? I have no experience of doing it in before. Unfortunatelly Blaazen's command line didn't work for me, but he give us the link which is there is I found of how to create patch via Tortoise's Context-menu in Windows Explorer.


For honest, the reason is because I am a stupid newbie to do that. I don't know how, where, when.  (When = is it now is good time to do?)
Hey,
I also unsure whether my idea is good enough to send to bugtracker,
IMHO, this "aesthetic bug" is in there so long, if the team let it there so perhaps it is "not a bug" in the Lazarus Team eyes.
Perhaps, they intended creating it by design. Perhaps the reason is yet known by you: "[size=78%]any fixed margin will fix it for some people and break it for others"[/size]
However, the top align buttons are looked like ugly in my eyes. So, I did it and let see Lazarus community proof my idea whether applicable or not.


Sure, my goal is to see Lazarus's Component Palette with balanced alignment in future release, if it possible.




Also, since the scrollbox will resize to multi-line (if needed) and then glyphs are aligned to the top, I do think there is no problem with them being top aligned all the time.

Unfortunatelly You can NOT do that. (or there is only me could NOT do that).
Scrollbox is not resizable, IDE's main form is not resizable, at least I can increase it height to see the multiline of the Component-Palette's scrollbox.
However, when the scrollbox is resizable, I will still provoke people to make it's margin balanced (top & bottom).
It is beautiful to see Lazarus as professional designed through it detail.


IMHO it would be akward if they where sometimes centered (single line) and other time top aligned. (My 2 cents)


2) The "mouse/selection" pointer-button:

You are right this should not scroll. But your solution is not ideal either. Why adjusting its top coordinate on scroll. It should not be in the scroll box at all (same as the "list all tabs dropdown" button on the right hand site)



You can't do it. AFAIK the Lazarus Team would not do it.
The select-pointer button is a TSpeedButton, all component buttons is also TSpeedButton.
Together, all of them share the same GroupIndex property so there will be only one button has "Down=True" property.
This all require both TSpeedButton & component-button in the same parent. We can't put them in separated parent.


I did you idea before creating this topic. And when we put select-pointer button outside the scrollbox, this button is useless in the way it unable to reset the component-button selection.


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

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #5 on: April 27, 2014, 05:30:10 am »
I can't go to bugtracker,
Why? What reason?

1) The good reason is because "we" need to do several test before proposing the patch to Lazarus team. Including test on "different" widgetset.
And I love to see other people report whether it is also fine in QT/GTK, etc. Due I only have GDI widgetset in my machine.
But, My real reason is: I never do that. I don't know how and where to report bugtracker. You know, often the difficult thing is in the first trying: how, why, when, where...
For example: Creating patch? I have no experience of doing it in before. Unfortunatelly Blaazen's command line didn't work for me, but he give us the link which is there is I found of how to create patch via Tortoise's Context-menu in Windows Explorer.


For honest, the reason is because I am a stupid newbie to do that. I don't know how, where, when.  (When = is it now is good time to do?)
Hey,
I also unsure whether my idea is good enough to send to bugtracker,
Ok, you want to discuss it before submission, that is fine.

The reason I asked is because it can easily be overlooked here on the forum. And that would not be wanted.

And also for the team, when we commit it to the SVN, then we can include the bug number, and we will always be able to look up what was the background for a change.

Quote

IMHO, this "aesthetic bug" is in there so long, if the team let it there so perhaps it is "not a bug" in the Lazarus Team eyes.
Perhaps, they intended creating it by design. Perhaps the reason is yet known by you: "[size=78%]any fixed margin will fix it for some people and break it for others"[/size]
However, the top align buttons are looked like ugly in my eyes. So, I did it and let see Lazarus community proof my idea whether applicable or not.

Sure, my goal is to see Lazarus's Component Palette with balanced alignment in future release, if it possible.
Well beauty lies in the eyes of the beholder. The opposite is true too.

I am not bothered by the current top align, but I am used to it for too long, to be a good judge.


Quote

[/font]

Also, since the scrollbox will resize to multi-line (if needed) and then glyphs are aligned to the top, I do think there is no problem with them being top aligned all the time.

Unfortunatelly You can NOT do that. (or there is only me could NOT do that).
Scrollbox is not resizable, IDE's main form is not resizable, at least I can increase it height to see the multiline of the Component-Palette's scrollbox.
However, when the scrollbox is resizable, I will still provoke people to make it's margin balanced (top & bottom).
It is beautiful to see Lazarus as professional designed through it detail.

Maybe your main IDE bar is already at maximum high? There is a max high restriction. Try to reduce the height.

Actually, I don't mind the center for the "all on one line" palette, If a good way can be found. But it needs to be carefully established how to do that.

Adding fixed extra margin, does not only most likely break with different widgetsets, it also will not work, if the window height is reduced, It may not work when docking, as again that may change the window size.
Then also where will the margin go, when it wraps to 2 lines? Does it push the 2nd line even further down? Meaning more scrolling.

So the only way, IMHO would be to change the margin as the window sive changes. I am not a fan of that, and further more, the margin would need to be removed, when you get the 2nd line. And That part, (having different margins for single and multiline) does not sound so good to me.
But I am happy to wait for feedback from others.

-----
Have a look at the attached, it shows the IDE bar, with 3 different heights, the biggest is the maximum

You can see that the toolbuttons (run/ stop, ...) also have distance to the bottom.

Ideally, it should be that the window was autosized, so there would be no extra space at the bottom (instead of inserting margins to distribute space usage)

I remember, this did not work when it was done initially. I do not know, if today it could be made to work on all platforms.

-----
To be honest, the bigger aesthetic issue as I see it is: The 2 line layout, so 2 tiny buttons to scroll, that (to me) looks so bad, and is so hard to use.
So a different overflow (maybe a drop down, like office toolbars do) would be nice.

Though I would run that idea past other team members, before going for it (and I have plenty other to do anyway)

Overall this needs more thought and feedback.

Quote

[/font]

2) The "mouse/selection" pointer-button:

You are right this should not scroll. But your solution is not ideal either. Why adjusting its top coordinate on scroll. It should not be in the scroll box at all (same as the "list all tabs dropdown" button on the right hand site)



You can't do it. AFAIK the Lazarus Team would not do it.
The select-pointer button is a TSpeedButton, all component buttons is also TSpeedButton.
Together, all of them share the same GroupIndex property so there will be only one button has "Down=True" property.
This all require both TSpeedButton & component-button in the same parent. We can't put them in separated parent.

I did you idea before creating this topic. And when we put select-pointer button outside the scrollbox, this button is useless in the way it unable to reset the component-button selection.


Ah I see.

It might work, if "all buttons up" is allowed, and there is code in the OnClick to take care of it?

" AFAIK the Lazarus Team would not do it."
Did anyone say so?

I will check if any one lese in the team has concerns about this. I am part of the team, and I would not be concerned. But before you do anything let me check


----------------
Btw: it may be a good idea to do individual patches, one per issue. That makes it easier to apply, and also each can be applied without waiting for the others.

MY trick to do that, is to have more than one svn checkout, so I can work in parallel.

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #6 on: April 27, 2014, 04:15:16 pm »



Though I would run that idea past other team members, before going for it (and I have plenty other to do anyway)
Overall this needs more thought and feedback.


2) The "mouse/selection" pointer-button:


You are right this should not scroll. But your solution is not ideal either. Why adjusting its top coordinate on scroll. It should not be in the scroll box at all (same as the "list all tabs dropdown" button on the right hand site)


You can't do it. AFAIK the Lazarus Team would not do it.
...
"You can't do it. AFAIK the Lazarus Team would not do it."
Did anyone say so?


..... I am part of the team, and I would not be concerned. But before you do anything let me check
..


OOoops!
I am sorry, sir. I don't know if you are already one of the Lazarus Team.
So, my apologize, There was a misunderstanding, I don't really mean it.
Actually, while saying that, it's not about you nor about the team. Let me explain...


IMHO, What I were talking is based on in fact that the Lazarus IDE built upon standard LCL which are : TSpeedButton, TToolbar, TScrollBox, TPageControl, TMainMenu, etc. There is no special widget/widgetset that only used in Lazarus.
We know that this choice indeed for making sure of Lazarus IDE will be compiled together with any supported widgetst.
Meaning: Lazarus would always using standard (known) widgetset, so far: no special-widget I can found in Lazarus IDE codes.


Based on that thought, I am sure that my idea is ideal. Your idea isn't.
I think moving the "mouse/pointer/selection" button outside the scrollbox need some hack to have different behavior than it's standard usage.
That's why I reject your rejection.


When I refer to "Lazarus Team", it is in comparation to Borland Delphi IDE's team which they are cheating by using special class for Delphi IDE building.
In more detail, Delphi IDE seem built upon hacked TPageControl (it has no bevel in left, right, and bottom side). We can see these in it's Object Inspector, Text-Editor, Component-Palette that they uses special TPageControl.
This kind of TPageControl is not available in Delphi VCL.
Another fact is Delphi 7's dock. We couldn't find any class in Delphi distribution that has similar capability to it's IDE-Dock.
There is no dock-control that able to receive an object by 2 rows height.


Simply, Lazarus is not Delphi.
Delphi shipped with some custom-controls which are only available for it's IDE only.
Lazarus IDE seem would be always built upon known widgets (TPageControl, TSpeedButton, TToolbar etc) which are also available in Lazarus source code distribution.
Both have different approach, different reason, included different bug, and so on.


That was why I said "Lazarus Team would not do it (hacking behavior of such TSpeedButton by allowing shared GroupIndex in multiple parent)."
IMHO, Lazarus team need to keep the IDE to built upon any widgetset. Special widget would increase complexity of implementation for entire widgetset supported by LCL. Which is, not necessary, in my own oppinion.
--------------


However, I must change my mind, since told us whether overflow-widget for showing component-buttons is possible.
I have to say: Lazarus Team could do anything they want. Including the use of special (TSpeedButton) widgets if they think it would better.








Yeah, let's rock!


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: Aesthetic bugfix of Lazarus's Component Palette
« Reply #7 on: April 27, 2014, 04:28:32 pm »



Anyway, I found a new approach of how to correct the margin of Lazarus IDE Component Palette.


In my prior solution, I insert a TPanel between the TabPage/Sheet and the scrollbar. This panel is used to increase the margin (top, bottom, left, right).
This panel is drawn as white space around the scrollbox in Windows XP.
However, it might be drawn in unpredicable color when using different Windows XP theme.
And the very worst is in fact we don't really need the existence of this panel.


My new idea is not using any helper class at all, to increase the margin.
instead, we can refine the calculation of buttons's "realign".
First, We know that all component-button's Align = alNone.
The bounds is set manually by iterating for each buttons according to space available inside the scrollbox's Width.


This second option is more clean in visual appearance,
and would decrease the modification line compared with prior solution.
And the best of it is easier to adopt in any widgetset, due the modification is done in bounds calculation, no additional class required.


What do you think?

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

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #8 on: April 27, 2014, 05:02:14 pm »
No need to apologize. You haven't done anything wrong.


Quote
Lazarus would always using standard (known) widgetset
Yes, but those standard widgets are painted by the OS.
So a TPageControl looks totally different on linux or mac or windows. ( http://wiki.lazarus.freepascal.org/Screenshots ), and the Pagecontrol uses a different amount of space.

Quote
Based on that thought, I am sure that my idea is ideal. Your idea isn't.
I think moving the "mouse/pointer/selection" button outside the scrollbox need some hack to have different behavior than it's standard usage.
That's why I reject your rejection.

It will take a few days to see if anyone has feedback, but one of the other Team Members (and I agree) pointed out, that changing the top while scrolling can cause flicker. Not on all Widgetset. Maybe not even at all today, but in future. (I have not tested it / this is only theoretical)

This is especially because (did not see that before)
Code: [Select]
    OnPaint := @ScrollBoxScrolled; // Keep first button in visible areaOnPaint is the wrong place. This means it will lead to need to paint twice. So this is definitely out of the question.


Taking it out, simple means to add OnClick code. I would not call that a hack.
But yes taking it out, is substantially more work.

Neither solution is ideal though.
Taking it out will also mean
- In single line, if the window height is to small, and only half of the icons (half of their height) is visible), then all icons (single line) can scroll vertical, except the "selection pointer".
- If we later decide to replace multi line by some other concept, then we will not need the "selection pointer" in a separate parent any more.

However, the only "correct" way I can see to do this by changing "top" would be:
Have a standalone TScrollbar (that is not connected to the scrollbox. When it scrolls, you must FIRST change the top position, then scoll the box.
If you use the scrollbar that belongs to the box, then I am not sure you can guarantee this order.

Even if you find an event of The scrollbox that triggered *before* OnPaint, that may be to late. If the Scrollbox uses ScrollWindowEx, then the visible change is already made. And I do not know of any event, that is guaranteed to be before ScrollWindowEx (if used).

Quote
by allowing shared GroupIndex in multiple parent
Well it is not needed to be added to LCL. Code can be in the ONClick event.


---------------
BTW, if you extract your N-order versus Z-order patch. I think that can be applied

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #9 on: April 27, 2014, 05:04:44 pm »
Quote
Anyway, I found a new approach of how to correct the margin of Lazarus IDE Component Palette.

Well implementation wise that sounds better.

But my concerns were behaviour related.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #10 on: April 27, 2014, 05:16:42 pm »
Quote
Anyway, I found a new approach of how to correct the margin of Lazarus IDE Component Palette.

Well implementation wise that sounds better.

But my concerns were behaviour related.

Also read my post on rather reducing the height to fit the icons.

But, as I said that was once prevented because window heights were wrongly calculated on some platforms. (And if this issue still exists, then calculating the margin based on the height, may lead to the same bug).

Unfortunately, I do not know if that issue still exists. And unless we find some one who knows, I rather not touch it (Some one else in the team might...). So this will be up to finding someone with more knowledge on this particular issue.

taazz

  • Hero Member
  • *****
  • Posts: 5368
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #11 on: April 27, 2014, 06:18:29 pm »
Isn't the delphi's default behavior acceptable ee a horizontal scroll instead of a vertical one? What made you decide to use a vertical scroll on what it looks like a single line of icons? It is counter intuitive but then again I do have a delphi background so......
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #12 on: April 27, 2014, 06:39:05 pm »
I don't have a delphi that old, that it still has a component palette in the main bar.

I only have the turbo explorer, and that has the components in a separate window, as a listbox, rather than toolbar.

So I dont know.

But if it was a horizontal scroll, then where to place the scrollbar? It would need to be below the icons, spanning the entire width of the tabsheet. So that would mean you need more height to have one line of icons + a scrollbar below?

Overall, this kind of embedded palette is not ideal in many ways. Maybe instead of doctoring on it, it would be nice to find a replacement?

Look for example how they are organized in other IDEs
 http://gihansblog.files.wordpress.com/2011/08/screenshotofglade.png

Blaazen

  • Hero Member
  • *****
  • Posts: 3237
  • POKE 54296,15
    • Eye-Candy Controls
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #13 on: April 27, 2014, 07:01:26 pm »
Here you have screenshot how it is invented in Delphi7.

EDIT: It is in Wine. As you can see, when palette is longer, Delphi will add a small button to the end which show a pop-menu with exceeding controls.

EDIT2: I don't like this. IMO Lazarus solution is better. 8)
« Last Edit: April 27, 2014, 07:12:18 pm by Blaazen »
Lazarus 2.3.0 (rev main-2_3-2863...) FPC 3.3.1 x86_64-linux-qt Chakra, Qt 4.8.7/5.13.2, Plasma 5.17.3
Lazarus 1.8.2 r57369 FPC 3.0.4 i386-win32-win32/win64 Wine 3.21

Try Eye-Candy Controls: https://sourceforge.net/projects/eccontrols/files/

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: Aesthetic bugfix of Lazarus's Component Palette
« Reply #14 on: April 27, 2014, 07:44:13 pm »

Hi, Taaz, Martin_fr, Blaazen, ...


Delphi 7 uses TPageScroller, not a TScrollBox.
TPageScroller no need any TScrollbar at all. For scrolling, TPageScroller will show the arrow on right or left (surrounding with red rectangle in my attachment) when there is any control hidden behind.


So, Taaz, you will never see its behavior in Lazarus, due there is no availability of such class in Lazarus/LCL, which is identic to TPageScroller


Overall, this kind of embedded palette is not ideal in many ways. Maybe instead of doctoring on it, it would be nice to find a replacement?


I agree. Let we see what have been done by people:


1) Tabbed Page.
The one we are disscussing, used by Lazarus, MSEIDE, VFD/fpGui designer, and early versions of Delphi.
it also called as Ribbon in Microsoft Office 2007/2010.
It is fine, but we able to see one row only.
So, we need to replace it with something able to show multiple rows of components.


2) Chevron.
Additionally, In Delphi 7, there is a chevron button (surrounded with blue box in my attached picture) that when clicked it would show all component palette contained within the current page, as menus (as also shown by Blaazen).


3. Accordion
Look for example how they are organized in other IDEs
 http://gihansblog.files.wordpress.com/2011/08/screenshotofglade.png
Glade (GTK GUI builder), VisualStudio, and modern Delphi are using it.
It takes large area in IDE, which is I want to avoid.
If Lazarus use it someday, it should an option to get back the PageControl (as current lazarus)




4) Drilldown.
I think, It would also useful when we can implement Martin's idea: showing overflow container like office 2007's Shapes super-combobox.
screenshoot: http://office365.pcpro.co.uk/sites/microsoftoffice365/files/styles/insert_main_wide_image/public/Create%20diagrams%20Figure-6.gif
It is similar as TCombobox, but TComboBox has only one item, while we need to show several items per row.


5. ScrollBox
It is used by current Lazarus, together with components's PageControl.
This way, a scrollbar will shown in the right side when any component button is hidden.
Compared with Delphi 7, the Lazarus IDE's Scrollbox is easier for scrolling items, due ScrollBox shown one scrollbar, so we no need to move mouse to go back to prior row.
When in Delphi 7, 2 arrows are shown, we need to move mouse to left side or right side which is not simple.


What do you think ?


---
Edit: TPageScroller, not TScrollPage
« Last Edit: April 27, 2014, 07:55:31 pm by x2nie »
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

 

TinyPortal © 2005-2018