var JS:TStringList;
SIGNATURE,pathSystem,pathProj,css_filename:string;
image,id,alt,title,css,tag:string;
LinkToUrl,LinkToTopic:String;
begin

// on commence par récupérer les paramètres
Image := GetParam('Image','');
Id := GetParam('Id',getID('shake')); // si pas d'id on lui en attribue un unique préfixé par 'shake'
Alt := GetParam('Alt','');
title := GetParam('Title','');
Css := GetParam('Css','');
LinkToTopic := GetParam('LinkToTopic','');
LinkToUrl := GetParam('LinktoUrl','');
if LinkToTopic<>'' then LinkToUrl := TitreToHtmlFile(LinkToTopic);
// inutile de travailler si pas d'image ...

if image<>'' then
begin

if not Condition('_HTML_') then
begin
write('coucou');
tag := '<<BMP(C,')>>+image+<<FNT(STRING.-,-,-,-:',,')>>+alt+<<FNT(STRING.-,-,-,-:',,1,1)>>';
write(tag);
end else begin
// --------- HTML ------------------------------------------------

SIGNATURE := 'shakeimage.js';

// on va tout d'abord copier le script js, mais on n'a besoin de le faire
// qu'une seule fois par compilation
if GetVarInt(SIGNATURE,0)=0 then
begin
SetVarInt(SIGNATURE,1); // pour ne pas le regénérer
// on détermine les répertoires source et cible
pathSystem := Path+'system.hew\';
pathProj := PathProjet;
if Condition('_HTMLHELP_') then pathProj:=pathProj+'htmlhelp\';
pathProj := pathProj+'html\';
// copier le fichier js shakeimage.js
Copyfile(pathSystem+SIGNATURE,PathProj+SIGNATURE);
end;

// puis on va le lier à la page html, mais une seule fois par page

if GetVarInt(SIGNATURE+getTitre,0)=0 then
begin
SetVarInt(SIGNATURE+getTitre,1); // pour ne pas le regénérer
// on relie le script à la page
AddToHead('<script type="text/javascript" src="'+SIGNATURE+'"></script>');
end;

JS := TStringList.create;
// on va definir une règle pour la classe shakeimage qui marque les images qui bougent
// récupérer la liste des fichiers css pour l'écran
GetListCssFilename(JS,'screen');
// s'il y a des fichiers css externes utiliser le premier, sinon en déclarer un
if JS.count>0 then css_Filename := JS.strings[0] else css_Filename := GetProjet+'_hw.css';
// on crée notre règle
SetCss(css_Filename,'.shakeimage','position','relative');

// on peut libérer la liste qui ne nous sert plus
JS.free;

// voila maintenant on va s'occuper de placer l'image dans notre page
// on déclare l'image à help&web
AddBitmapFile(image);
// on rajoute la classe shakeimage si nécessaire
if pos('shakeimage',css)=0 then
begin
if css<>'' then css:=css+' ';
css := css + 'shakeimage';
end;

if LinkToUrl<>'' then write('<<WEB(<a href="')>>+LinkToUrl+<<FNT(STRING.-,-,-,-:'">)>>');
// Get_src_lh_WebImage retourne une chaîne où sera renseignée la largeur, hauteur et l'adresse de notre image
write('<<WEB(<img id="')>>+id+<<FNT(STRING.-,-,-,-:'" class="')>>+css+<<FNT(STRING.-,-,-,-:'" alt="')>>+alt+<<FNT(STRING.-,-,-,-:'" title="')>>+title+<<FNT(STRING.-,-,-,-:'" ')>>+Get_src_lh_WebImage(image)+<<FNT(STRING.-,-,-,-:'/>)>>');
if LinkToUrl<>'' then write('<<WEB(</a>)>>');
// on rattache les évenements sur onmouseover et onmouseout mais pas directement dans la balise html
jsAddOnLoad(id,'mouseover','init(document.getElementById('+ #39+Id+#39+'));rattleimage()');
jsAddOnLoad(id,'mouseout','stoprattle(document.getElementById('+ #39+Id+#39+'))');
end;
end; // ---- HTML ------
end;
end.

Sommaire