Ejemplo n.º 1
0
            public void ShowHelp(string HelpKeyword, string HelpFileName)
            {
                List <ICustomHelpViewer> providesHelp = new List <ICustomHelpViewer>();

                foreach (var viewer in helpViewers)
                {
                    int topics = viewer.UnderstandsKeyword(HelpKeyword);
                    if (topics > 0)
                    {
                        providesHelp.Add(viewer);
                    }
                }

                if (providesHelp.Count == 0)
                {
                    return;
                }

                if (helpSelector == null || providesHelp.Count == 1)
                {
                    providesHelp[0].ShowHelp(HelpKeyword);
                }
                else
                {
                    TStringList keywords = new TStringList();
                    keywords.Duplicates = TDuplicates.dupIgnore;
                    foreach (var viewer in providesHelp)
                    {
                        TStringList temp  = new TStringList(viewer.GetHelpStrings(HelpKeyword));
                        int         count = temp.Count;
                        for (int i = 0; i < count; i++)
                        {
                            temp.Objects[i] = viewer;
                        }
                        keywords.AddStrings(temp);
                    }
                    int index = helpSelector.SelectKeyword(keywords);
                    if (index < 0)
                    {
                        return;
                    }
                    string            helpstring     = keywords[index];
                    ICustomHelpViewer selectedViewer = (ICustomHelpViewer)keywords.Objects[index];
                    selectedViewer.ShowHelp(helpstring);
                }
            }