Tras descubrir un bug, me veo obligado a publicar su corrección. El método SetMenuItem queda como sigue:
Código Delphi
[-]
procedure TMultiWindowMenuControl.SetMenuItem(NewMenuItem: TMenuItem);
var
Item: TMenuItem;
begin
if FMenuItem = NewMenuItem then exit;
if NewMenuItem <> nil then
begin
while (FMenuItem <> nil) and (FMenuItem.Count > 0) do
begin
Item:= FMenuItem.Items[0];
FMenuItem.Delete(0);
NewMenuItem.Add(Item);
end;
end
else
Clear;
FMenuItem:= NewMenuItem;
end;
El código completo corregido se encuentra aquí:
MultiWindowMenuControl_01.zip.
Saludos.