Hi, We've recently implemented the AutoLineReduction property for TMenu(Item). The current implementation is based upon the Delphi docs and some limited user input. So, questions remain.
For those who have a recent Delphi installed, can you please try to answer these 2 questions (I have D7, which is, to be mild, a bit ancient). Question 1. Given the following Menu: TopLevel - ItemA - Separator - ItemB - Separator - ItemC Given that TopLevelA.GetAutoLineRedction will return 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. So far, so good. 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. 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. 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. 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. So, your (Delphi users/owners) help is appreciated. Thanks in advance. -- Bart
-- _______________________________________________ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus