用Delphi编写CGI程序返回图象
来源:互联网 发布:it行业不景气 编辑:程序博客网 时间:2024/06/05 09:43
珠海西门子表计公司
汪永荣
---- Delphi 4.0对Internet编程提供了强大的支持,Delphi 4.0编写CGI非常容易, Delphi 4.0本身提供了例程。但是笔者在实践中遇到需要CGI程序根据数据库动态 返回图象的情况,很多文章推进使用Cgi-Expert或有关的OCX控件,使用控件不仅 带来额外的开销,且缺乏灵活性,那么能否不使用这些控件自己编写代码实现,现 推荐一种方法,代码如下:
unit ChartMod; interface uses Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables, DbChart, Series, Jpeg, ExtCtrls; type TWebModule1 = class(TWebModule) Table1: TTable;procedure WebModule1ActionAreaAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled:Boolean);procedure WebModule1ActionPopulationAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled:Boolean); procedure WebModule1Create(Sender: TObject); procedure WebModule1Destroy(Sender: TObject); procedure WebModule1AfterDispatch(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); private Chart: TDBChart; Series: TPieSeries; Image: TImage; public { Public declarations } end; var WebModule1: TWebModule1; implementation {$R *.DFM} procedure TWebModule1.WebModule1ActionAreaAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);begin // set specific values Chart.Title.Text.Clear; Chart.Title.Text.Add ('Area of Countries'); Chart.LeftAxis.Title.Caption := 'Area'; Series.Title := 'Area'; Series.PieValues.ValueSource := 'Area';end; procedure TWebModule1.WebModule1ActionPopulationAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);begin // set specific values Chart.Title.Text.Clear; Chart.Title.Text.Add ('Population of Countries'); Chart.LeftAxis.Title.Caption := 'Population'; Series.Title := 'Population'; Series.PieValues.ValueSource := 'Population';end; procedure TWebModule1.WebModule1Create(Sender: TObject);begin // open the database table Table1.Open; // create the chart Chart := TDBChart.Create (nil); Chart.Width := 600; Chart.Height := 400; Chart.AxisVisible := False; Chart.Legend.Visible := False; Chart.BottomAxis.Title.Caption := 'Name'; // create the pie series Series := TPieSeries.Create (Chart); Series.ParentChart := Chart; Series.DataSource := Table1; Series.XLabelsSource := 'Name'; Series.OtherSlice.Style := poBelowPercent; Series.OtherSlice.Text := 'Others'; Series.OtherSlice.Value := 2; Chart.AddSeries (Series); // create the memory bitmap Image := TImage.Create (nil); Image.Width := Chart.Width; Image.Height := Chart.Height;end; procedure TWebModule1.WebModule1Destroy(Sender: TObject);begin Chart.Free; Series.Free; Image.Free;end; procedure TWebModule1.WebModule1AfterDispatch(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);var Jpeg: TJpegImage; MemStr: TMemoryStream;begin // paint the chart on the memory bitmap Chart.Draw (Image.Canvas, Image.BoundsRect); // create the jpeg and copy the iamge to it Jpeg := TJpegImage.Create; try Jpeg.Assign (Image.Picture.Bitmap); MemStr := TMemoryStream.Create; try // save to a stream and return it Jpeg.SaveToStream (MemStr); MemStr.Position := 0; Response.ContentType := 'image/jpeg'; Response.ContentStream := MemStr; Response.SendResponse; finally MemStr.Free; end; finally Jpeg.Free; end;end; end.
- 用Delphi编写CGI程序返回图象
- 用Delphi编写CGI程序(一)
- 用Delphi编写CGI程序(二)
- 用Delphi编写CGI程序(三)
- 用Delphi编写CGI程序(四)
- 用Delphi编写CGI程序(五)
- 用Delphi编写CGI程序(六)
- 用c编写cgi程序
- 用c编写cgi程序
- 用VB编写标准CGI程序
- 如何编写CGI程序
- CGI程序编写
- CGI程序编写
- 用Delphi编写安装程序
- 用Delphi编写DelTree程序
- 编写控制图象采集卡的程序
- D 语言编写CGI程序
- C语言编写CGI程序
- Win32中实现类似MFC中TRACE的函数
- SQLite
- DirectDraw Overlay的使用
- 马云的演讲,非常喜欢。
- MAC和PHY之间的关系
- 用Delphi编写CGI程序返回图象
- ISSI
- html 表格自动换行问题
- VC之控件篇(一)
- 基于窗口的DirectDraw编程
- iOS常见问题及解决办法积累
- 【科研论文】基于FPGA和W5100的以太网通信系统设计
- python——sys、os
- VBO与VAO