diff --git a/components/externhelp/externhelpfrm.pas b/components/externhelp/externhelpfrm.pas index afd98c7d75..7bdc1601e0 100644 --- a/components/externhelp/externhelpfrm.pas +++ b/components/externhelp/externhelpfrm.pas @@ -1427,25 +1427,33 @@ begin Context:=ContextList.List[i].Context; case ContextList.List[i].Descriptor of + // fully qualified identifier name for members in classes pihcProperty,pihcVariable,pihcType,pihcConst: begin - Identifier:=Context; - break; + if (i > 0) and (Identifier <> '') then + Identifier := Identifier + '.'; + Identifier := Identifier + Context; end; + // fully qualified identifier name for members in classes pihcProcedure: begin + if (i > 0) and (Identifier <> '') then + Identifier := Identifier + '.'; // chomp parameters ToDo: overloaded procs p:=System.Pos('(',Context); if p>0 then Context:=copy(Context,1,p-1); - Identifier:=Context; - break; + Identifier := Identifier + Context; end; end; end; + // avoids the help database not found message for the unit declaration + if (AUnitName <> '') and (Identifier = '') then + Identifier := 'index'; + if Identifier<>'' then begin DebugLn(['TExternalHelpDatabase.ShowHelp Identifier=',Identifier]); // replace special macros (Identifier) @@ -1453,8 +1461,9 @@ begin repeat p:=PosI('$(identifier)',URL); if p<1 then break; - URL:=copy(URL,1,p-1)+Identifier - +copy(URL,p+length('$(identifier)'),length(URL)); + // a $LCase() macro would avoid converting to lowercase + URL:=copy(URL,1,p-1)+Lowercase(Identifier)+ + copy(URL,p+length('$(identifier)'),length(URL)); until false; // replace global macros