说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Delphi编写CGI程序返回图象

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi编写CGI程序返回图象

---- 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.

英特尔CEO:EUV光刻技术或助力芯片突破摩尔定律 从微软大数据日看到的,银行、交通、医疗实践之路 IDC:iPad市场份额遭Android平板蚕食 滑至29.6% [TUP第30期]直击移动应用开发难点 探讨跨平台最佳解决方案 用动态语言编写程序,命名更重要 命中率80%,磁盘I/O减半,Flashcache的发展史 这次它很低调:谷歌正式发布Android4.4和Nexus 5 iPhone 5S来了,iPhone 6还会远吗?概念机来袭 [开源推荐]PhysicsJS:基于JavaScript的强大的物理引擎 望虚窥实!专访Oculus Rift创始人Palmer Luckey 利益至上,开源也不免于此 开发者必备,超实用的PHP代码片段! 福利来了!AngularJS资源大集锦 移动周报:“360儿童卫士”手环的是与非 Ion Stoica和他的数据故事(上) 开发者必备:测试网站速度的五个免费在线工具 谷歌员工曝光在谷歌工作那些最糟糕的事情 MDCC 2013全民移动 玩转智能硬件展 如何降低白噪声对网站用户体验的影响? 谁才是真正的资深开发者? 东软董事长刘积仁阐述三大战略 构建以知识资产驱动的商业模式 一切皆为 JavaScript 黑莓:弃私有化任命华人为临时CEO 卖给联想的节奏? 谁说WP仍然不行?意大利WP份额已超iOS MDCC之移动娱乐游戏峰会:百家手游齐逐金玩奖 专访Mozilla宫力:基于Web是Firefox OS最大的资本 如何设计一款Java框架? AngularJS优化最佳实践:从1200ms缩减到35ms Linus Torvalds宣布Linux kernel3.12正式发布! 硅谷的技术文化——渴求独处! MDCC为移动开发者服务:一看、一聊、一聚 Oracle8i Release 8.1.5 原版电子文档(pdf)--- 谁要!!!!! 如何用delphi实现图像网络传输与存储?请高手介绍方法,包括用什么库,通过TCP/IP怎么办? 请教打印问题 一个菜鸟的提问 在BEAN中,System.out.println("yyy")为什么不能输出呀? 局域网接ADSL,如何限制用户上互联网? 如何不安装oracle的客户端用来连接服务器上的oracle数据库 请问哪有VC关于ADO编程的书籍下载? 关于组件的问题? 用DAO连接数据库,在我的机器上运行没问题,但在其它机器上一运行就挂 谁能告我liulee的个人网页地址呀?? 关于在浏览器中直接运行VB程序的问题 十万火急,我遇上两个奇怪的问题。答者重谢。 请问:如何使用toString? 各位,期待已久的简单任务来了!又是100分!(SQL Server 2000) 好累啊,想放弃了,但又无法回头! Java中,Inner class可不可以使用final修饰符? 谁能告我liulee的个人网页地址呀??急 请教如何在程序运行时修改dbgrid控件options属性中的关于多选控制和整行选择的两个属性? 请推荐UNIX方面的书籍 如何使用toString()方法,谢谢 菜鸟系列:一个简单的编译错误,但我不明白!救命啊!!!! 这就是标准?SJ/T11234 SJ/T11235培训纪实 在哪里看我现在linux系统中用的应用软件的版本号?比如wu-ftp sendmail等等! 操作系统版本不同问题 BCB下怎么调用WINDOWS API函数,急 cpu风扇不转的问题…… 游戏开发的高手或者3维建模的高手,是怎样开发人物模型的呢? 今天下午有没有去微软发布会的????马上回答 关于字体问题!请教会者不难者!!!!!!!! 請問怎麼定義小一點得符點數???? ReadFile超时返回什么? 我的机器装了2000server,2000profession 和NT4.0,现在机器空间不够想把nt4.0和2000profession 卸载,请问应该如何进行?? 怎样用PB代码实现在MDI窗口里的 Ctrl + Tab 的功能 ? 如何将静态库加入项目中,有头文件,SETING出也加入,为何说和系统的库重复定义 如何调用非mfc的程序调用mfc下开发的动态连接库, 请问谁有监测图片变化的部分代码?(在线等待) GetCurrentDirectory()?? 用ADo更新图片(bmp,jpg)难道只能将原来的数据记录删除后在添加吗?不能直接更新吗? 请大家帮忙解决一下循环体的问题!!:) 请问oracle 自己带的http server(实际上是apache)如何配置class path 给你100分(OLE) 我在制作一个网络浏览器时遇到一个问题,在线等你的帮助 公司不做软件了,失业了,高兴送分 JNI 中内存管理的问题 ehlib控件的问题,如何在表中的一字段显示一个列表?分可以加,,,在线等 大家帮我 c# 的一大难题? 一定加分! 十万火急~~谁有完整的网站计划书? 能不能给我一份,万分感谢! 高分求教不用ActiveSkin实现金山词霸类窗体和按钮效果。 用delphi编写的dll结果不能调用,谢谢你的回答!!! 碳酸钠和碳酸溶液中水的电离程度比较 关于自然界中霜雨露雾的形成,说法错误的是A云中有小水滴,他们是水蒸气升入高空时遇冷液化而成的B雾是漂浮在空气中的大量的水蒸气C露是地面附近的水蒸气液化成的小水珠D霜是空气中的 成长中的一件事作文600字 当光线垂直于水面射入水中,光的传播方向是什么,折射角为多少度,在折射现象中光路是什么的光的传播方向变吗在折射现象中光路是可逆的吗 光从空气中射入斜射入另一种介质中,入射光线会发生偏折,入射角大于折射角. 如果光从空气中射入真空中,入射角是不是会小于折射角.入射角和折射角的关系和介质的密度有没有关系?(请详 如何由实验证明该碱性由co3^2-水解引起 提供试剂包括na2co3 bacl2 naclthanks 当光线从空气中射入水中,光的传播方向会发生改变,这就是光的折射现象.(前面的都是废话,与题目无关)问题:图中的∠1和∠2是对顶角吗(这个我知道)试比较∠1与∠2大小.(∠1大∠2小 盛过石灰水的试剂瓶内壁有一层白膜,形成白膜原因? 怎样证明Na2CO3溶液呈碱性是由CO3,水解引起的 当光线从空气射入水中时,光的传播的方向发生了改变,这就是折射现象.图中∠1=∠ 长期存放石灰水的试剂瓶内壁上往往形成一层不溶于水的白色物质,要洗去该物质可选用A 水 B纯碱溶液 C洗衣粉 D稀盐酸 如何用一个实验来证明纯碱水溶液呈碱性是由碳酸根离子引起的,而不是因为钠离子可以选用仪器和试剂:试管 胶头滴管 酚酞试液 5%纯碱溶液 5%碳酸钾溶液 5%氯化钠溶液实验结论: 当光线从空气中射入水中,光的传播方向会发生改变,这就是光的折射现象∠1=43°,∠2=108°,试问光的传播方向改变了多少度?写错了,∠2=27° 长期盛放澄清石灰水的试剂瓶内壁往往附着一层白色固体.这层白色固体是怎样形成的? 碳酸氢钠和碳酸钠的碱性哪个强?请从水解角度说明 长期存放石灰水的试剂瓶壁有一层白色的固体物质,它是( ),形成白色固体的 化学方程式为( );清洗长期存放石灰水的试剂瓶壁有一层白色的固体物质,它是( 形成白色固体的 化学方程式为( ) 盛放石灰水的试剂瓶壁上有一层白色固体,该固体是?写出形成这种白色固体的文字表达式______,要洗去这层白色固体的物质可先加入______溶解,再用水冲洗. 为什么碳酸钠中的碳酸根离子显碱性?其他含碳酸根的化合物也显碱性吗? 盛放石灰水的试剂瓶放置时间长了,在瓶口会形成一些白色粉末.用化学方程式如何表示?(急) 下面关于物态变化的说法判断不正确是( )A.霜是水蒸气凝华而成的 B.冰是水凝固形下面关于物态变化的说法判断不正确是(  )A.霜是水蒸气凝华而成的 B.冰是水凝固形成的C.雾是水汽 水结冰时——体积如何变化? 盛放石灰水的试剂瓶放置了,瓶口会形成一些白色粉末少打字了,"放置久了" 关于阳光经过大气层的折射既然阳光经过大气层会向下偏折,那么为什么当太阳在水平面以下时就可以被看见呢?应该是在水平面以上还看不见.而且所有地区看到的日出都是提前的吗?应该是有 为什么光从空气射入水中时,折射光线向法线偏折? 长期盛放石灰水的试剂瓶壁上有一层白色固体物质,它是—— 光透过大气层时,会发生折射 这句话对吗 为什么激光从空气射入水中,折射光线向法线偏折,而固体(如一只筷子)从空气放入水中看,筷子是远离法线偏折的? 长期存放石灰水的玻璃试剂瓶内壁有一层白色物质,它是?形成原因是【用化学方程式表示】? 如果没有大气层对太阳光的折射 我们将晚看到太阳 为什么?如果没有大气层对太阳光的折射 早晨,我们将晚看到太阳 为什么? 光从空气进入水中为什么是向法线靠近而不是远离?最好具体一些,麻烦提一下原理, 在盛满三分之二水的杯子里放入5克盐,再放入鸡蛋,为什么鸡蛋会浮起来? 冰怎样转化成水蒸气/水蒸气怎样转化成冰/水怎样转化成水蒸气/水蒸气怎样转化成水? 一杯水,加盐后,鸡蛋是不是浮在水面上?一个杯子,放了盐,再加水,鸡蛋是不是在杯子的中间? 重100牛的水可以产生多大的浮力 为什么水的蒸汽压低于冰的蒸汽压冰就转化为水蒸汽压有减小的趋势吗?还是什么,.....我不知道 水结冰时——体积如何变化? 盛装有石灰水的试剂瓶,日久内壁会附着一层白色固体,要想清洗掉这层白色固体,常用的试剂是A用水洗 B热的纯碱溶液 C稀硫酸 D稀盐酸 乐可斯冰淇淋加盟天气预报就是应用大气变化的规律,根据当前及近期的天气形势,对未来一定时期内的天气状天气预报就是应用大气变化的规律,根据当前及近期的天气形势,对未来一定时期内 折射现象中,光在空气、玻璃、水中的角度大小关系是:______、______、______ 盛放石灰水的试剂瓶内壁会有一圈白色物质,这是应为什么?宜用什么清洗?CaCO3是什么 光在真空中的速度是[]米/秒,光线空气射入水中其速度将[] 自然光以布儒斯特角有由空气入射到一玻璃表面上,反射光是在入射面内振动的完全线偏振光.这句话为什自然光以布儒斯特角有由空气入射到一玻璃表面上,反射光是在入射面内振动的完全线 我身边的正能量 征文400字左右 久置的装石灰水的试剂瓶用盐酸清洗化学方程式 美居雅阁 天气预报就是应用大气变化的规律,根据当前及近期的天气形势,对未来一定时期内的天气状况进行天气预报就是应用大气变化的规律,根据当前及近期的天气形势,对未来一定时期内 谁能给我些正能量啊?我希望每天能量满满的活着 盛石灰水的试剂瓶壁上的白膜用盐酸清除的化学方程式 天气预报说明大气的什么情况 水结冰体积变大会产生什么危害?水结冰体积变大这种现象会产生什么危害?越快越好噢!^=^ 水结冰时——体积如何变化? 除去CACL2中的HCL用CACO3可不可以产生的H2O和CO2反应怎么办 水结冰体积变大有什么危害 实验室放石灰水的瓶中常有不溶于水的CaCO3,可加 除去,化学方程式为 酸碱溶液中水电离出的氢离子浓度怎么算图 Na2co3溶液中水电离的氢离子个数为什么大于Nahco3同体积同物质的量 注意是氢离子个数 解释自然界中:雨 云 雪 露 雾 霜的形成依次是 我身边的正能量作文600有具体事例 水结冰,体积变大,有什么危害? 自然界中“霜”、“雾”、“露”是怎样形成的,它们的形成过程有什么不同? 我身边的正能量 作文600
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘