// déclaration variables
var bitmap:TBitmap;
Name,cssName,cssElement,cssFilename,sens:string;
i,WidthStrip,y,boucle,j:integer;
Horizontal:boolean;
Oblique_gauche,oblique_droite:boolean;
//Liste:TstringList;
begin
// sens
Sens := GetParam('Sens','Horizontal');
Horizontal := sens='Horizontal';
Oblique_droite := sens='Oblique droite';
Oblique_gauche := sens='Oblique gauche';
// largeur strip (uniquement pour horizontal et vertical
WidthStrip := StrToInt(GetParam('WithStrip','1'));
if WidthStrip< 1 then WidthStrip := 1;
if WidthStrip>6 then WidthStrip := 10;
// création d'un image 8*8 ou 3x3 pour oblique
bitmap := TBitmap.create;

if (not oblique_droite) and (not oblique_gauche) then
begin
bitmap.width := 8;
bitmap.height:= 8;
// on lui applique un fond de couleur FirstColor par défaut blanc
bitmap.Brush.Color := GetParam('FirstColor','clWhite');
bitmap.Pen.Color := bitmap.Brush.Color;
bitmap.Canvas.Rectangle(0,0,8, 8);
// on va maintenant dessiner les lignes de la seconde couleur
bitmap.Pen.Color := GetParam('LastColor','$F5F5F5');
if Horizontal then
begin
boucle := 8 div 2*WidthStrip;
y := 0;

for i:=0 to Boucle do
begin
j:=0 ;
while j<WidthStrip do
begin
bitmap.canvas.Moveto(0,y+j);
bitmap.canvas.Lineto(8,y+j);
j := j+1;
end;
y := y + 2*WidthStrip;

end;

end else begin

boucle := 8 div 2*WidthStrip;
y := 0;

for i:=0 to Boucle do
begin
j:=0 ;
while j<WidthStrip do
begin
bitmap.canvas.Moveto(y+j,0);
bitmap.canvas.Lineto(y+j,8);
j := j+1;
end;
y := y + 2*WidthStrip;
end;
end;
end else begin // oblique
bitmap.width := WidthStrip+2;
bitmap.height:= WidthStrip+2;
// on lui applique un fond de couleur FirstColor par défaut blanc
bitmap.Brush.Color := GetParam('FirstColor','clWhite');
bitmap.Pen.Color := bitmap.Brush.Color;
bitmap.Canvas.Rectangle(0,0,bitmap.width,bitmap.height);
// on va maintenant dessiner la ligne oblique
bitmap.Pen.Color := GetParam('LastColor','$F5F5F5');
if oblique_gauche then
begin

j := bitmap.height-1;
i := 0;
while j>-1 do
begin

bitmap.canvas.pixels[j,i] := bitmap.Pen.Color;
j := j - 1;
i := i + 1;
end;
//bitmap.canvas.pixels[2,0] := bitmap.Pen.Color;
//bitmap.canvas.pixels[1,1] := bitmap.Pen.Color;
//bitmap.canvas.pixels[0,2] := bitmap.Pen.Color;
end else begin

j := 0;
i := 0;

while j<bitmap.height do
begin

bitmap.canvas.pixels[i,j] := bitmap.Pen.Color;
j := j + 1;
i := i + 1;

end;
//bitmap.canvas.pixels[0,2] := bitmap.Pen.Color;
//bitmap.canvas.pixels[1,1] := bitmap.Pen.Color;
//bitmap.canvas.pixels[2,0] := bitmap.Pen.Color;
end;
end;
// on sauve l'image
Name := GetParam('Name','BGStrip')+'.bmp';
bitmap.savetofile(name);
// !!! important toujours libérer ce que l'on crée
bitmap.free;
// on la fait connaître d'help&web
AddBitmapFile(Name);
// on va maintenant définir une règle css pour appliquer l'image en arrière plan
// déterminer l'élément où redéfinir le fond, par défaut body (la page entière)
cssElement := GetParam('cssElement','body');

// obtenir le vrai nom de l'image en html (pas un .bmp)
cssName := getWebImage(Name);
// retirer le chemin relatif en htmlhelp sinon l'image ne sera pas retrouvé
if Condition('_HTMLHELP_') then cssName := copy(cssName,6,length(cssName)-5);

// si cssInline = false alors on enregistre la règle dans un fichier css externe
// sinon on va la placer directement dans le source de la page
// par défaunt inline
if GetParam('cssInline','false')='false' then
begin
cssFilename := GetProjet+'_hw.css';

// modifier les propriétés background-image et background-repeat de notre element
SetCss(cssFilename,csselement,'Background-Image','url('+cssName+')');
SetCss(cssFilename,csselement,'Background-Repeat','repeat');
end else begin
// modifier les propriétés background-image et background-repeat de notre element
SetInlineCss(GetNom,csselement,'Background-Image','url('+cssName+')');
SetInLineCss(GetNom,csselement,'Background-Repeat','repeat');
end;

end;
end.

Sommaire