This is with Delphi XE 11.3 (Community Edition) (do you know that the
Community Edition is free? Its license conditions (non-commercial or
commercial if total revenues < 5000 $) certainly apply to FPC/Laz
development):
Question 1.
Given the following Menu:
TopLevel
- ItemA
- Separator
- ItemB
- Separator
- ItemC
Given that TopLevelA.GetAutoLineRedction will return True.
TMenuItem.GetAutoLineReduction is protected. I used subclassing to
verify that it is true
Now I do: ItemB.Visible := False
Then I do: TopLevel.RethinkLines.
This will hide one of the 2 now consective separators (in our
implementation it hides the second one).
So it will show as
TopLevel
- ItemA
- Separator
- ItemC
I suppose this is how Delphi works as well.
Yes.
Now I do: ItemB.Visible := True
Then I do: TopLevel.RethinkLines.
I implemented RethinkLines such that it will now restore the separator
after ItemB, because this makes sense to me.
But I have absolutely no idea if Delphi does this as well.
Restores ItemB and the separator
Question 2
Given the following Menu:
TopLevel
- Separator
- ItemA
- Separator
- Separator
- ItemB
- Separator
- Separator
- ItemC
- Separator
And TopLevel.AutoLineReduction starts out as maManual, so all
separators are visible.
Yes
Now I do: TopLevel.AutoLineReduction := maAutomatic
Then I do: TopLevel.RethinkLines
It will now show as:
- ItemA
- Separator
- ItemB
- Separator
- ItemC
This is Delphi compatible AFAIK.
Hmmm... I have this code in a button. When I click on this button
immediately after running the project, you are right, there are only
single separators. But when I first open the menu to verify the double
separators and then click on the button, nothing changes, and the double
separators remain...
Now I do: TopLevel.AutoLineReduction := maManual
Then I do: TopLevel.RethinkLines
I implemented RethinkLines so that this will set all separators Visble
property to True again.
This makes sense to me, as it performs the opposite action of maAutomatic.
But again, I'm not really sure this is what Delphi does in this case.
I added a second button for the maManual code. Running the program and
clicking both buttons in the order of your description, nothing changes
- there are still single separators.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus