
Gestion de l'historique de navigation (comme celui présent en haut et en bas de cette aide)

Affiche le titre de la rubrique, avec possibilité d'y associer une image.
Les fontes employées pour le titre et pour le texte par défaut sont extraites des données du dialogue "Options|Projet|Typographie", tout changement est automatiquement répercuté dans l'ensemble des rubriques utilisants ce script.

Affichage de lignes contenants des tabulations sous la forme d'un tableau

Bouton style XP

Permet de définir deux zones droite et gauche placées sur la même ligne. Un exemple d'utilisation est la ligne du bas de cette aide.

Affiche un texte en dégradé de couleurs : Ceci est un dégradé de couleurs

Affiche un lien vers la rubrique suivante, le lien reprend le titre de la rubrique cible, vous pouvez filtrer la rubrique suivante en fonction de ses notes, du type popup ou pas, de son niveau.

Affiche


Affichage d'un titre, avec possibilité de lui associé une puce et une image, de définir un lien et un signet sur le titre (c'est ce script qui est employé sur cette page pour les titres des scripts)

Pour chacune des sous-rubriques immédiate de la rubrique, affiche un bouton et un lien reprenant l'intitulé de la sous-rubrique, bien sur à chaque ajout d'une sous-rubrique les liens sont automatiquement créés.
Exemple en image
Arborescence du projet de cet aide

Code à placer en fin de la rubrique "Fonctions à votre disposition"

Aperçu, les liens sont créés par le script

Tout est paramètrable, le bouton, la fonte employée etc.

Affiche une liste de liens vers les nouveautés de l'aide.
Pour les signaler, placez dans la rubrique à l'endroit de la nouveauté un signet et cochez

Affiche une liste de liens sur les rubriques ayants un mot-clef particulier, ce mot est passé en paramètre.
Les mots clefs devront avoir étés créés avec la note V

Affiche une rangée de boutons reliés aux signets de la rubrique.
exemple :







































Le script Onglet.spr permet de calculer automatiquement le code Help&Web pour créer de beaux onglets.

Composition automatique d'une page Glossaire constituée de la liste alphabétique des popups, sous la forme :
Titre du Popup : contenu du popup
Vous pouvez filtrer les popups référencés dans le glossaire, à l'aide du paramètre "FilterNote"
REF(glossaire.spr:FilterNote=G) n'utilisera que les popups ayants des mots-clefs de type G

Composition automatique d'une page Glossaire constituée de la liste alphabétique des définitions, pour chacune d'entre elle les liens vers les rubriques où elles sont utilisées sont créés.
Voir la rubrique Glossaire de cette aide.

Affichage d'une image centrée avec une légende, celle-ci est préfixée par "Fig." plus un numéro d'ordre automatiquement incrémenté

Affichage de l'ensemble des légendes définies par le script Fig, sous la forme d'un lien direct vers l'image associée, voir Illustrations pour un exemple

Gestion automatique d'un menu vertical basé sur l'arborescence de vos rubriques (2 niveaux max), vous pouvez choisir la couleur de base, les rubriques de départ et de fin, la largeur etc.
Ce composant est l'adaption d'un menu en html+css que vous trouverez là css.maxdesign.com.au/listutorial/sub_master.htm

Affichage d'un menu horizontal composé des rubriques d'un même niveau, vous pouvez choisir les couleurs de base, le niveau que décrit votre menu
vous en voyez un exemple dans le bandeau supérieur de cette aide, la ligne Introduction | Manuel | ...
Ce composant est l'adaption d'un menu en html+css que vous trouverez sur www.stylesheetx.com/experiment/h_navbar.php

Affichage d'une liste de liens constituée de l'arborescence de vos rubriques, vous pouvez choisir les rubriques de début et de fin, la profondeur, une classe CSS .

Pour chaque sous-rubrique affiche le titre, la première ligne et un lien vers elle.
Voir le chapitre "Tutoriaux" de l'aide pour un exemple

Création d'une liste de tous les liens internet contenu dans votre projet, cela ne concerne que les liens textuels.

Affiche une image sur les navigateurs web qui le permettent et pour les autres le texte équivalent, basé sur une technique expliquée ici
Cela n'a de réelle utilité que dans les formats xhtml et HtmlHelp , pour les autres cela insére simplement une image

Réalisation de la miniature d'une image et de sa légende, affichage de l'image en taille réelle dans une fenêtre popup lors d'un clic sur la miniature, en positionnant Shadow à true vous activez l'effet d'ombrage.
Attention vous ne devez pas utiliser une image bmp
seulement du jpeg, du png ou du gif

Création automatique d'une planche constitué des vignettes réalisées avec ThumbnailImage, l'image en taille réelle s'affiche dans un popup lors d'un clic sur la miniature et la légende est un lien vers la miniature d'origine.
Vous avez la possibilité de filtrer les miniatures de votre planche, de choisir le numéro de début et de fin de votre série, ainsi bien sur que le style CSS du conteneur.
TitreChapitre
Gestion automatique du bandeau fixe comme dans l'ancienne aide d'Help&Web

définition d'une liste de sélection reliée aux signets de la rubrique (comme dans cette aide)
Ne Fonctionne qu'en HTML et HtmlHelp

Permet de redéfinir les couleurs du bandeau de titre (zone fixe) et du fond de la page.
Ne Fonctionne qu'en Html et HtmlHelp

Permet de définir l'arrière-plan d'un élément html (body, div etc.) par des stries de 2 couleurs alternées
Exemple
Ne Fonctionne qu'en Html et HtmlHelp

Dessine une image contenant des bordures 3D (dégradé de couleurs) et une zone centrale hachurée (2 couleurs)
Cette image servira de fond pour un élément css (par défaut body)
Exemple
Ne Fonctionne qu'en Html et
HtmlHelp
Insertion de métadonnées "Dublin Core" permettent de donner des informations sur les pages Web
Les
données
"date de création" et "date de modification" sont automatiquement renseignéesNe Fonctionne qu'en Html et HtmlHelp

Définition d'une zone escamotable
var
strings:TStringList;
Pathfile,sId,PathImg:string;
Id:integer;
Contenu,Titre,ImgScrollUp,ImgScrollDown,Width,CssTitle,CssData,CssSeparation: string;
DefClassTitle,DefClassData,DefImg,ImgHint,OnClick,ClassButton: string;
titleClic,ImgLeft:boolean;
css_filename:string;
begin
Contenu := GetParam('Contenu','');
// ne fonctionne qu'en html et htmlhelp, pour les autres on affiche simplement le contenu
if Condition('_HTML_') then
begin
css_filename := GetParam('FilenameCss',GetProjet+'_hw.css');
PathFile := PathProjet ;
if Condition('_HTMLHELP_') then
begin
PathFile:=PAthFile+'htmlhelp\';
PathImg := 'html\';
end else PathImg:='';
PathFile:=PathFile+'html\';
// création des fichiers javascript et css externe
// ne le créer qu'une seule fois par session
if GetVarInt('scrollpanel.js',0)=0 then
begin
SetVarInt('scrollpanel.js',1);
strings:=TStringList.create;
strings.add('function ShowHide(element, image, title)');
strings.add('{');
strings.add('if (element.className == "ScrollPanelData")');
strings.add('{');
strings.add('element.className = "ScrollPanelDataHidden";');
strings.add('image.src = "scrolldown.gif";');
strings.add('title.className = "ScrollPanelTitleHidden";');
strings.add('}');
strings.add('else');
strings.add('{');
strings.add('element.className = "ScrollPanelData";');
strings.add('image.src = "scrollup.gif";');
strings.add('title.className = "ScrollPanelTitle";');
strings.add('}');
strings.add('}');
Strings.SaveToFile(PathFile+'scrollpanel.js');
Strings.clear;
// génération des styles css
SetCss(css_filename,'.ScrollPanelTitle','border','1px solid black');
SetCss(css_filename,'.ScrollPanelTitle','background-color','black');
SetCss(css_filename,'.ScrollPanelTitle','color','white');
SetCss(css_filename,'.ScrollPanelTitle','font-weight','bold');
SetCss(css_filename,'.ScrollPanelTitleHidden','border','1px solid black');
SetCss(css_filename,'.ScrollPanelTitleHidden','background-color','#FF0000');
SetCss(css_filename,'.ScrollPanelTitleHidden','color','white');
SetCss(css_filename,'.ScrollPanelTitleHidden','font-weight','bold');
SetCss(css_filename,'.ScrollButton','float','right');
SetCss(css_filename,'.ScrollButton','cursor','pointer');
SetCss(css_filename,'.ScrollButtonLeft','float','left');
SetCss(css_filename,'.ScrollButtonLeft','cursor','pointer');
SetCss(css_filename,'.ScrollPanelData','border-right','1px solid black');
SetCss(css_filename,'.ScrollPanelData','border-left','1px solid black');
SetCss(css_filename,'.ScrollPanelData','border-bottom','1px solid black');
SetCss(css_filename,'.ScrollPanelData','background-color','#C0C0C0');
SetCss(css_filename,'.ScrollPanelDataHidden','display','none');
Strings.free;
end; // fin création js et css externe
// insérer lien vers css externe qu'une fois par page
if GetVarInt(css_filename+GetTitre,0)=0 then
begin
SetVarInt(css_filename+GetTitre,1);
writeln('<<WEB(head:<link rel="stylesheet" type="text/css" href="')>>+css_filename+<<FNT(STRING.-,-,-,-:'" />)>>');
end;
// insérer lien vers js externe qu'une fois par page
if GetVarInt('scrollpanel.js'+GetTitre,0)=0 then
begin
SetVarInt('scrollpanel.js'+GetTitre,1);
writeln('<<WEB(head:<script type="text/javascript" src="scrollpanel.js"></script>)>>');
end;
// création d'un Id unique pour chaque ScrollPanel
Id := GetVarInt('IdScrollPanel',0);
sId := IntToStr(Id);
SetVarInt('IdScrollPanel',Id+1);
Titre := GetParam('Titre','');
TitleClic := GetParam('TitleClic','true')='true';
ImgScrollUp := GetParam('ImgScrollUp','scrollup.gif');
ImgScrollDown := GetParam('ImgScrollDown','scrolldown.gif');
ImgLeft := GetParam('ImgPos','Right')='Left';
ImgHint := GetParam('ImgHint','');
Width := GetParam('Width','600px');
cssTitle := GetParam('CssTitle','');
cssData := GetParam('CssData','');
if cssTitle<>'' then cssTitle:=' style="'+CssStyle(cssTitle)+'"';
if cssData<>'' then cssData:=' style="'+CssStyle(cssData)+'"';
CssSeparation := GetParam('CssSeparation','');
if GetParam('Open','false')='true' then
begin
DefClassTitle := 'ScrollPanelTitle';
DefClassData := 'ScrollPanelData';
DefImg := PathImg+ImgScrollUp;
end else begin
DefClassTitle := 'ScrollPanelTitleHidden';
DefClassData := 'ScrollPanelDataHidden';
DefImg := PathImg+ImgScrollDown;
end;
// comme le nom des images est référencé dans du code html non interprété par help&web
// il faut les lui déclarer explicitement
AddBitmapFile(ImgScrollUp);
AddBitmapFile(ImgScrollDown);
OnClick := 'ShowHide(document.getElementById('+ #39+'ScrollData'+sID+#39+'), document.getElementById('+#39+'ScrollImg'+sId+#39+'), document.getElementById('+#39+'ScrollTitle'+sId+#39+'))';
write('<<WEB(<div class="ScrollablePanel" style="width:')>>+Width+<<FNT(STRING.-,-,-,-:'">)>>');
write('<<WEB(<a name="ScrollTitle')>>+sId+<<FNT(STRING.-,-,-,-:'" id="AScrollTitle')>>+sId+<<FNT(STRING.-,-,-,-:'" style="display: none;"></a>)>>');
ClassButton := 'ScrollButton';
if imgLeft then ClassButton:=ClassButton+'Left';
write('<<WEB(<div class="')>>+DefClassTitle+<<FNT(STRING.-,-,-,-:'"')>>+cssTitle+<<FNT(STRING.-,-,-,-:' id="ScrollTitle')>>+sId+<<FNT(STRING.-,-,-,-:'">)>>');
write('<<WEB(<img alt="')>>+imgHint+<<FNT(STRING.-,-,-,-:'" title="')>>+imgHint+<<FNT(STRING.-,-,-,-:'" class="')>>+ClassButton+<<FNT(STRING.-,-,-,-:'" src="')>>+DefImg+<<FNT(STRING.-,-,-,-:'" onclick="')>>+OnClick+<<FNT(STRING.-,-,-,-:'" id="ScrollImg')>>+sID+<<FNT(STRING.-,-,-,-:'"/>)>>');
if titleClic then write('<<WEB(<a href="#ScrollTiltle')>>+sId+<<FNT(STRING.-,-,-,-:'" onclick="')>>+onclick+<<FNT(STRING.-,-,-,-:'">)>>');
write(titre);
if titleclic then write('<<WEB(</a>)>>');
write('<<WEB(</div>)>>');
write('<<WEB(<div class="')>>+DefClassData+<<FNT(STRING.-,-,-,-:'"')>>+cssData+<<FNT(STRING.-,-,-,-:' id="ScrollData')>>+sId+<<FNT(STRING.-,-,-,-:'">)>>');
write(GetContenuPartage(Contenu));
writeln('<<WEB(</div>)>>');
if CssSeparation<>'' then write('<<WEB(<div class="')>>+CssSeparation+<<FNT(STRING.-,-,-,-:'" style="width:')>>+Width+<<FNT(STRING.-,-,-,-:'"> </div>)>>');
write('<<WEB(</div>)>>');
end else write(GetContenuPartage(Contenu)); // fin if HTML
end;
end.
Pathfile,sId,PathImg:string;
Id:integer;
Contenu,Titre,ImgScrollUp,ImgScrollDown,Width,CssTitle,CssData,CssSeparation: string;
DefClassTitle,DefClassData,DefImg,ImgHint,OnClick,ClassButton: string;
titleClic,ImgLeft:boolean;
css_filename:string;
begin
Contenu := GetParam('Contenu','');
// ne fonctionne qu'en html et htmlhelp, pour les autres on affiche simplement le contenu
if Condition('_HTML_') then
begin
css_filename := GetParam('FilenameCss',GetProjet+'_hw.css');
PathFile := PathProjet ;
if Condition('_HTMLHELP_') then
begin
PathFile:=PAthFile+'htmlhelp\';
PathImg := 'html\';
end else PathImg:='';
PathFile:=PathFile+'html\';
// création des fichiers javascript et css externe
// ne le créer qu'une seule fois par session
if GetVarInt('scrollpanel.js',0)=0 then
begin
SetVarInt('scrollpanel.js',1);
strings:=TStringList.create;
strings.add('function ShowHide(element, image, title)');
strings.add('{');
strings.add('if (element.className == "ScrollPanelData")');
strings.add('{');
strings.add('element.className = "ScrollPanelDataHidden";');
strings.add('image.src = "scrolldown.gif";');
strings.add('title.className = "ScrollPanelTitleHidden";');
strings.add('}');
strings.add('else');
strings.add('{');
strings.add('element.className = "ScrollPanelData";');
strings.add('image.src = "scrollup.gif";');
strings.add('title.className = "ScrollPanelTitle";');
strings.add('}');
strings.add('}');
Strings.SaveToFile(PathFile+'scrollpanel.js');
Strings.clear;
// génération des styles css
SetCss(css_filename,'.ScrollPanelTitle','border','1px solid black');
SetCss(css_filename,'.ScrollPanelTitle','background-color','black');
SetCss(css_filename,'.ScrollPanelTitle','color','white');
SetCss(css_filename,'.ScrollPanelTitle','font-weight','bold');
SetCss(css_filename,'.ScrollPanelTitleHidden','border','1px solid black');
SetCss(css_filename,'.ScrollPanelTitleHidden','background-color','#FF0000');
SetCss(css_filename,'.ScrollPanelTitleHidden','color','white');
SetCss(css_filename,'.ScrollPanelTitleHidden','font-weight','bold');
SetCss(css_filename,'.ScrollButton','float','right');
SetCss(css_filename,'.ScrollButton','cursor','pointer');
SetCss(css_filename,'.ScrollButtonLeft','float','left');
SetCss(css_filename,'.ScrollButtonLeft','cursor','pointer');
SetCss(css_filename,'.ScrollPanelData','border-right','1px solid black');
SetCss(css_filename,'.ScrollPanelData','border-left','1px solid black');
SetCss(css_filename,'.ScrollPanelData','border-bottom','1px solid black');
SetCss(css_filename,'.ScrollPanelData','background-color','#C0C0C0');
SetCss(css_filename,'.ScrollPanelDataHidden','display','none');
Strings.free;
end; // fin création js et css externe
// insérer lien vers css externe qu'une fois par page
if GetVarInt(css_filename+GetTitre,0)=0 then
begin
SetVarInt(css_filename+GetTitre,1);
writeln('<<WEB(head:<link rel="stylesheet" type="text/css" href="')>>+css_filename+<<FNT(STRING.-,-,-,-:'" />)>>');
end;
// insérer lien vers js externe qu'une fois par page
if GetVarInt('scrollpanel.js'+GetTitre,0)=0 then
begin
SetVarInt('scrollpanel.js'+GetTitre,1);
writeln('<<WEB(head:<script type="text/javascript" src="scrollpanel.js"></script>)>>');
end;
// création d'un Id unique pour chaque ScrollPanel
Id := GetVarInt('IdScrollPanel',0);
sId := IntToStr(Id);
SetVarInt('IdScrollPanel',Id+1);
Titre := GetParam('Titre','');
TitleClic := GetParam('TitleClic','true')='true';
ImgScrollUp := GetParam('ImgScrollUp','scrollup.gif');
ImgScrollDown := GetParam('ImgScrollDown','scrolldown.gif');
ImgLeft := GetParam('ImgPos','Right')='Left';
ImgHint := GetParam('ImgHint','');
Width := GetParam('Width','600px');
cssTitle := GetParam('CssTitle','');
cssData := GetParam('CssData','');
if cssTitle<>'' then cssTitle:=' style="'+CssStyle(cssTitle)+'"';
if cssData<>'' then cssData:=' style="'+CssStyle(cssData)+'"';
CssSeparation := GetParam('CssSeparation','');
if GetParam('Open','false')='true' then
begin
DefClassTitle := 'ScrollPanelTitle';
DefClassData := 'ScrollPanelData';
DefImg := PathImg+ImgScrollUp;
end else begin
DefClassTitle := 'ScrollPanelTitleHidden';
DefClassData := 'ScrollPanelDataHidden';
DefImg := PathImg+ImgScrollDown;
end;
// comme le nom des images est référencé dans du code html non interprété par help&web
// il faut les lui déclarer explicitement
AddBitmapFile(ImgScrollUp);
AddBitmapFile(ImgScrollDown);
OnClick := 'ShowHide(document.getElementById('+ #39+'ScrollData'+sID+#39+'), document.getElementById('+#39+'ScrollImg'+sId+#39+'), document.getElementById('+#39+'ScrollTitle'+sId+#39+'))';
write('<<WEB(<div class="ScrollablePanel" style="width:')>>+Width+<<FNT(STRING.-,-,-,-:'">)>>');
write('<<WEB(<a name="ScrollTitle')>>+sId+<<FNT(STRING.-,-,-,-:'" id="AScrollTitle')>>+sId+<<FNT(STRING.-,-,-,-:'" style="display: none;"></a>)>>');
ClassButton := 'ScrollButton';
if imgLeft then ClassButton:=ClassButton+'Left';
write('<<WEB(<div class="')>>+DefClassTitle+<<FNT(STRING.-,-,-,-:'"')>>+cssTitle+<<FNT(STRING.-,-,-,-:' id="ScrollTitle')>>+sId+<<FNT(STRING.-,-,-,-:'">)>>');
write('<<WEB(<img alt="')>>+imgHint+<<FNT(STRING.-,-,-,-:'" title="')>>+imgHint+<<FNT(STRING.-,-,-,-:'" class="')>>+ClassButton+<<FNT(STRING.-,-,-,-:'" src="')>>+DefImg+<<FNT(STRING.-,-,-,-:'" onclick="')>>+OnClick+<<FNT(STRING.-,-,-,-:'" id="ScrollImg')>>+sID+<<FNT(STRING.-,-,-,-:'"/>)>>');
if titleClic then write('<<WEB(<a href="#ScrollTiltle')>>+sId+<<FNT(STRING.-,-,-,-:'" onclick="')>>+onclick+<<FNT(STRING.-,-,-,-:'">)>>');
write(titre);
if titleclic then write('<<WEB(</a>)>>');
write('<<WEB(</div>)>>');
write('<<WEB(<div class="')>>+DefClassData+<<FNT(STRING.-,-,-,-:'"')>>+cssData+<<FNT(STRING.-,-,-,-:' id="ScrollData')>>+sId+<<FNT(STRING.-,-,-,-:'">)>>');
write(GetContenuPartage(Contenu));
writeln('<<WEB(</div>)>>');
if CssSeparation<>'' then write('<<WEB(<div class="')>>+CssSeparation+<<FNT(STRING.-,-,-,-:'" style="width:')>>+Width+<<FNT(STRING.-,-,-,-:'"> </div>)>>');
write('<<WEB(</div>)>>');
end else write(GetContenuPartage(Contenu)); // fin if HTML
end;
end.

Ne Fonctionne qu'en Html et HtmlHelp

Affichage d'une table de données csv avec possibilité de filtrer sur les champs, pour créer vos bases allez dans le menu

Incorporation d'un moteur de recherche en javascript basé sur tipue.com, la base de donnée est alimentée par les mots clefs de vos rubriques, la première ligne de celles-ci ou le contenu de l'objet "SearchResume" que vous leur avez assigné.

Composant à placer sur la page charger d'afficher les résultats
L'utilisation est très simple, il vous suffit simplement d'indiquer la page des résultats au travers de la propriété TopicResult du composant Search puis de compiler votre projet et voilà ...
Vous pouvez entièrement paramètrer les composants pour les adapter à votre charte graphique

Fait bouger une image lorsque le curseur de la souris passe dessus
Ne Fonctionne qu'en Html et HtmlHelp image normale dans les autres modes.

Correctif du bug IE Windows des png transparence alpha
utilise pngbehavior.htc d'Erik Arvidsson webfx.eae.net/contact.html#erik