Серверное программирование в Delphi

Dr.Zlobyus

Xakep, номер #056, стр. 056-074-3


Удачи!

Листинг счетчика

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

Bitmap: TBitmap;

Hits: Integer;

LogFile: Text;

FileName: string;

Jpeg1: TJpegImage;

Stream: TMemoryStream;

begin

FileName :='Count.log'; //задаем название лог-файла

System.Assign(LogFile, FileName);

try

if FileExists(FileName) then //если файл существует, то добавляем 1 к общему числу посещений

begin

Reset(LogFile);

Readln(LogFile, Hits);

Inc(Hits);

end

else //если нет, то пишем в файл 1

Hits := 1;

Rewrite(LogFile);

Writeln(LogFile, Hits);

finally

Close(LogFile);

end;

Bitmap := TBitmap.Create; //создаем изображение

try

Bitmap.Width := 120;

Bitmap.Height := 25;

Bitmap.Canvas.Font.Name := 'Arial';

Bitmap.Canvas.Font.Size := 14;

Bitmap.Canvas.Font.Color := RGB (255, 127, 0);

Bitmap.Canvas.Font.Style := [fsBold];

Bitmap.Canvas.TextOut (1, 1, 'Hits: ' + FormatFloat ('###,###,###', Int(Hits))); //выводим количество посещений

Jpeg1 := TJpegImage.Create;

try

Jpeg1.CompressionQuality := 50;

Jpeg1.Assign(Bitmap);

Stream := TMemoryStream.Create; //создаем поток

Jpeg1.SaveToStream (Stream); //помещаем в него изображение

Stream.Position := 0;

Response.ContentType := 'image/jpeg';

Response.ContentStream := Stream;

Response.SendResponse; //отсылаем результат

finally

Jpeg1.Free;

end;

finally

Bitmap.Free;

end;

end;

Назад на стр. 056-074-2  Содержание