// VoirAussi - v 1.0 © 1999 Escot-Sep christophe

// Affiche une liste de liens sur les rubriques ayants un mot-clef particulier

// on passe en paramètre le Mot clef
// Les mots clefs devront avoir étés créés avec la note V


var i,NbrTopic,NbrKey:integer;
VoirAussi: string;
Signet : string;
Rubrique : string;
fenetre : string;
begin

VoirAussi := GetParam('Key',''); // mot clef servant à cibler les rubriques

if VoirAussi<>'' then
begin
// obtenir le nombre total de rubrique du projet
NbrTopic := GetTopicCount;


// tester l'ensemble des rubriques
for i:=0 to NbrTopic do
begin
// pour chaqu'une, obtenir les mots clefs de note 'V'
NbrKey:=GetKeysNoteOf(i,'V');

// parcourir la liste des mots clefs depuis la fin
// NbrKey contient au départ le nombre total des clefs
// Comme les clefs sont indexées depuis zéro,
// la derniere clef est GetKey(NbrKey-1)

while NbrKey>0 do
begin

if GetKey(NbrKey-1)=VoirAussi then
begin
// le mot clef correspond
// on obtient le Nom de la rubrique, l'éventuel signet du mot clef
Rubrique := GetNomOf(i);
Signet := GetKeySignet(NbrKey-1);
// obtenir le nom de la fenêtre cible
Fenetre := GetWinOf(i);
// si la rubrique cible est dans la fenêtre standard main
// alors on utilise un lien de type macro, les signets sont accessibles
if CompareText('main',Fenetre)=0 then
begin
// tenir compte du signet pour la rubrique cible
if Signet<>'' then Rubrique:=Rubrique+'>'+Signet;
// on place le lien dans la rubrique
WriteLn(Format('<<MCR(JI(qchPath,`%s')>>+<<FNT(NUMBER.-,-,-,-:#39)>>+<<FNT(STRING.-,-,-,-:'):%s)>>',[Rubrique,GetTitreOf(i)]));
end
else // Fenetre secondaire ==> lien de type JMP
WriteLn(Format('<<JMP(%s,%s)>>',[GetTitreOf(i),Rubrique]));

// NbrKey à zéro pour en finir avec cette rubrique
// Cela nous évite d'avoir plusieurs liens vers une même rubrique
NBrKey:=0;
end else NbrKey:=nbrKey-1; // on continu avec les autres si pas trouvé

end;
end; // rubrique suivante
end;
end;
end.

Sommaire