var bitmap:TBitmap;
Name,cssElement,cssFilename:string;
i,width,BorderWidth:integer;
r,r1,r2,g,g1,g2,b,b1,b2:integer;
Color1,Color2,Color:Tcolor;
Liste:TstringList;
begin
width := StrToInt(GetParam('Width','720'));
BorderWidth := StrToInt(GetParam('BorderWidth','16'));
// création d'un image (width+2*BorderWidth)*2
bitmap := TBitmap.create;
bitmap.width := width+(2*BorderWidth);
bitmap.height:= 2;

// on va dessiner la zone centrale
// 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,2);
// on va maintenant dessiner les lignes de la seconde couleur
bitmap.Pen.Color := GetParam('LastColor','$F5F5F5');
bitmap.canvas.Moveto(0,1);
bitmap.canvas.Lineto(bitmap.width,1);

// maintenant on dessine les bordure gauche et droite en dégradé de couleurs
// GetRGB extrait les valeur rouge,vert, bleu d'une couleur
color1 := GetParam('FirstBorderColor','clBlack');
color2 := GetParam('LastBorderColor','clWhite');

GetRGB(color1,r1,g1,b1);
GetRGB(Color2,r2,g2,b2);

R := R1;
G := G1;
B := B1;

for i:=0 to BorderWidth do
begin
bitmap.pen.color := '$'+IntToHex(RGB(r,g,b),6);
bitmap.canvas.moveto(BorderWidth-i,0);
bitmap.canvas.lineto(BorderWidth-i-1,0);
bitmap.canvas.moveto(width+BorderWidth+i-1,0);
bitmap.canvas.lineto(width+BorderWidth+i,0);
bitmap.canvas.moveto(BorderWidth-i,1);
bitmap.canvas.lineto(BorderWidth-i-1,1);
bitmap.canvas.moveto(width+BorderWidth+i-1,1);
bitmap.canvas.lineto(width+BorderWidth+i,1);
R := R + (R2 - R1) div BorderWidth;
G := G + (G2 - G1) div BorderWidth;
B := B + (b2 - b1) div BorderWidth;

end;

// on sauve l'image
Name := GetParam('Name','FixedWidth3DBorder')+'.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);

cssElement := GetParam('cssElement','body');

if GetParam('cssInline','false')='false' then
begin
Liste:=TstringList.create;
// récupérer la liste des fichiers css pour l'écran
GetListCssFilename(Liste,'screen');
// s'il y a des fichiers css externes utiliser le premier, sinon en déclarer un
if Liste.count>0 then cssFilename := Liste.strings[0] else cssFilename := GetProjet+'_hw.css';
Liste.free;
// modifier les propriétés background-image et background-repeat de notre element
if GetParam('BackgroundColor','true')= 'true' then SetCss(cssFilename,cssElement,'Background',ColorToHtml(GetParam( 'LastBorderColor','clWhite')));
SetCss(cssFilename,cssElement,'Background-Image','url('+getWebImage(Name)+')');
SetCss(cssFilename,cssElement,'Background-Repeat','repeat-y');
SetCss(cssFilename,cssElement,'Background-position','center');
end else begin
// modifier les propriétés background-image et background-repeat de notre element
if GetParam('BackgroundColor','true')= 'true' then SetInlineCss(getNom,cssElement,'Background',ColorToHtml(GetParam( 'LastBorderColor','clWhite')));
SetInlineCss(GetNom,cssElement,'Background-Image','url('+getWebImage(Name)+')');
SetInLineCss(GetNom,cssElement,'Background-Repeat','repeat-y');
SetInlineCss(GetNom,cssElement,'Background-position','center');

end;

end;
end.

Sommaire