program WebCount;
uses
WebBroker,
CGIApp,
CountWm in 'CountWm.pas' ;
begin
Application.Initialize;
Application.CreateForm(TWebModule1, WebModule1);
Application.Run;
end.
|
unit CountWm;
interface
uses
Windows, SysUtils, HTTPApp;
type
TWebModule1 = class(TWebModule)
procedure WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
end;
var
WebModule1: TWebModule1;
implementation
uses
Graphics, Jpeg, ExtCtrls, Classes;
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
Bitmap: TBitmap;
nHit: Integer;
LogFile: Text;
LogFileName: string;
Jpeg1: TJpegImage;
Stream: TMemoryStream;
begin
LogFileName := 'WebCont.log';
System.Assign (LogFile, LogFileName);
try
if FileExists (LogFileName) then
begin
Reset (LogFile);
Readln (LogFile, nHit);
Inc (nHit);
end
else
nHit := 0;
Rewrite (LogFile);
Writeln (LogFile, nHit);
finally
Close (LogFile);
end;
Response.Content := IntToStr (nHit);
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 (nHit)));
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;
end.
|