mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 19:35:58 +02:00
LCL: throw warning if items.count is differrent than invisible + visible count and check items.IndexOf(). issue #36776
git-svn-id: trunk@62733 -
This commit is contained in:
parent
965242b45e
commit
50d299bc8f
@ -364,15 +364,29 @@ begin
|
||||
|
||||
AMenu := GetMenu(Self);
|
||||
AMergedItems := MergedItems;
|
||||
|
||||
// issue #36776
|
||||
if FItems.Count <> AMergedItems.InvisibleCount + AMergedItems.VisibleCount then
|
||||
begin
|
||||
DebugLn(Format('WARNING: TMenuItem.CheckChildrenHandles(%s): items %d invisibleCount %d visibleCount %d',
|
||||
[dbgsName(Self),FItems.Count, AMergedItems.InvisibleCount, AMergedItems.VisibleCount]));
|
||||
for i := 0 to FItems.Count - 1 do
|
||||
if Assigned(FItems[i]) then
|
||||
DebugLn(Format('Item[%d] %s',[i, dbgsName(TMenuItem(FItems[i]))]));
|
||||
end;
|
||||
|
||||
for i := 0 to AMergedItems.InvisibleCount-1 do
|
||||
if AMergedItems.InvisibleItems[i].HandleAllocated then
|
||||
if (FItems.IndexOf(AMergedItems.InvisibleItems[i]) >= 0) and AMergedItems.InvisibleItems[i].HandleAllocated then
|
||||
AMergedItems.InvisibleItems[i].DestroyHandle;
|
||||
|
||||
for i := 0 to AMergedItems.VisibleCount-1 do
|
||||
begin
|
||||
if AMergedItems.VisibleItems[i].HandleAllocated and (GetMenu(AMergedItems.VisibleItems[i]) <> AMenu) then
|
||||
AMergedItems.VisibleItems[i].DestroyHandle;
|
||||
AMergedItems.VisibleItems[i].HandleNeeded;
|
||||
if (FItems.IndexOf(AMergedItems.VisibleItems[i]) >= 0) then
|
||||
begin
|
||||
if AMergedItems.VisibleItems[i].HandleAllocated and (GetMenu(AMergedItems.VisibleItems[i]) <> AMenu) then
|
||||
AMergedItems.VisibleItems[i].DestroyHandle;
|
||||
AMergedItems.VisibleItems[i].HandleNeeded;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user