Hallo,
dieses Plugin ist ja super!
Wenn so etwas doch mal als Standard dabei wäre
Ich bin gerade dabei alle Hilfen einzubinden und dabei sind mir ein paar Sachen/Probleme aufgefallen:
- Ich habe die Reihenfolge der Einträge umgedreht. Namespace-Treffer sind jetzt zuerst aufgelistet. Könnte man ja vielleicht als Konfigurationsoption hinzufügen.
- function THelpSelector.SelectKeyword:
in der ersten Zeile sollte nicht idx, sondern Result initialisiert werden. Sonst gibt es einen Fehler wenn man die Auswahl abbricht.
Delphi-Quellcode:
function THelpSelector.SelectKeyword(Keywords: TStrings): Integer;
var
idx : integer;
u : String;
begin
Result:=-1;
if TFormHelpSelector.Execute(Keywords, idx, u) then
Result:=idx;
end;
- procedure TCustomHelp.LoadEnabledNamespacesFromRegistry
Ich habe Probleme mit manchen Namespaces (devExpress-Komponenten). Der Aufruf der Funktion GetNavigationObject löst eine Exception aus (Das Navigationsobject [!DefaultKeywordIndex] konnte nicht abgerufen werden), was dazu führt das das Package nicht mehr geladen werden kann. Deshalb habe ich den Code wie folgt erweitert:
Delphi-Quellcode:
procedure TCustomHelp.LoadEnabledNamespacesFromRegistry;
var
sl : TStringList;
idx : integer;
hxSession: IHxSession;
hxIndex: IHxIndex;
NavObject: IDispatch;
begin
FEnabledIndices.Clear;
sl:=TStringList.Create;
try
ReadEnabledNamespacesFromRegistry(sl);
for idx := 1
to Namespaces.Count
do
begin
if sl.IndexOf(Namespaces.Item(idx).
Name)>=0
then
begin
hxSession:=CoHxSession.Create;
hxSession.Initialize('
ms-help://'+Namespaces.Item(idx).
Name,0);
try
NavObject := hxSession.GetNavigationObject('
!DefaultKeywordIndex','
');
if Assigned(NavObject)
and Supports(NavObject,
IID_IHxIndex,
hxIndex)
then
begin
FEnabledIndices.Add(hxIndex);
end;
except on e:
exception do
begin
ShowMessage('
Error when checking namespace ' + Namespaces.Item(idx).
Name + '
! Disabling namespace.'#13#10+ e.
Message);
Self.WriteNamespacesToRegistry(Namespaces.Item(idx).
Name, false);
end;
end;
end;
end;
finally
sl.Free;
end;
end;
Kann mir da einer bei den DevExpress-Hilfedateien Tipps geben? In der "normalen" Hilfe funktioniert der Index natürlich
--
CU,
Andre