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

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

360推出信用网站认证开放平台 联合百家协会围剿钓鱼网站 经验分享:百度测试架构师眼中的百度QA(一) 在线旅行服务行业开放API带来的新机遇 专访:悬疑恐怖游戏Year Walk美术及音效设计师 解密:微软都柏林数据中心的神秘“免费冷却”装置 云计算如何影响数字化营销? 榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 谷歌携Blink来势汹汹 WebKit将成明日黄花? 星巴克与苹果合作 顾客可免费下载付费App 微信回应信令争议 将启动2.5G网络优化计划 凤凰网CTO吴华鹏离职 先后供职长达10年 外媒:开发者每周编码时间仅19.1小时 AppGratis CEO现身说法:应用被苹果儆杀始末 一个Web设计师眼里的云计算 戴尔高管:服务器业务领先惠普五年时间 Hoodie:基于JS与CouchDB的超快速Web开发框架 设计优秀API的五大规则 盘点英特尔IDF2013第一天:技术产品新趋势 英雄组队去打怪!Nimble Quest开发团队访谈 云通讯平台打造本土Twilio 被逼无奈?传微软或明年秋发布iOS和Android版Office 欧洲各国政府将向大众开放公共数据 访联想云存储罗予晋:优化MooseFS,共建生态系统 磊友创始人赵霏:关于HTML5与Flash争执之我见 国际混乱C语言代码大赛优胜作品详解之“A clock in one line” 揭秘程序员大脑编程的七大“误区” 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相 数据库管理系统ParElastic:打破常规 扩展云端MySQL 谷歌苹果专利纠纷意在战略无意和解 美法官为其苦恼 Facebook收购神秘移动软件创业公司Osmeta 关于浏览器的紧急求救 懂串口编程的哥们帮帮忙?? 如果数据窗口显示有数据,如何用代码实现数据窗口不显示数据? 怎样使JSP和Servlet共用一个Bean?急急急 如何才能获取运行时指定一表的字段信息和索引信息 请问如何定义任意组合的热键?请给例子 怎样让工具条缺省是漂浮着的啊?(先答先给分,50分全送) 3000-5000元寻求软件开发合作! 怎么把图片设为桌面? 3000-5000元寻求软件开发合作!!! tfilesteam怎么才能显示出文本 pb中如何执行sp_who并得到结果 3000-5000元寻求软件开发合作!! 怎么用IHTMLDocument2接口查询IHTMLElement接口 3000-5000元寻求软件开发合作!!!!! 日期数据类型的问题;MDI子窗口的问题。 top851 用VC打开SQL数据库问题! QR怎樣讓報表分列 诚征工程外包 我的AOUTOCAD总装不上? 如何实现在asp页面上操作,备份数据库? PB中发送HTML邮件问题 各位仁兄。我要在内存位图上作画。怎么搞。help.255' 刷新另一个页面的问题 ■■BCB没有PTR函数?DELPHI中的PTR对应BCB中的函数是什么?请高手指教■■ 我加不起分,怎么回事? 求一个位运算的算试 《深入浅出MFC》中一个小问题不明白! 关于键盘消息的问题 谁有《Linux内核源代码分析》.发给我或告诉我连接都给分 在SESSION STARTZ()中是不是不能用ASP脚本程序? 问一个菜鸟级的问题。答者有分。 为何我用CDialogBar生成的停靠栏上Button都是灰色的? Help!!help!!请教如何在vc程序将我的信息发到别人的手机中?? tapi播放语音 关于变量传递问题,请高手帮忙! 有谁在OnDraw()中用过MessageBox()?为什么不是死循环?怎么解释发生的现象? 关于播放flash的问题 把0显示成0.00怎么弄? 简单问题,怎样得到ListView一单元格中的内容,如用GetItemText请问里面的参数怎样添? 全新安装的redhat 7.2为什么启动kde后不能打开Konqueroer浏览器和主目录 研究生在毕业时真的比本科生有优势吗? 请教:谁知道自动控制原理根轨迹乃试图。。,的算法? 我的AOUTOCAD总装不上??? 爱恋是什么东西?是好人就来看!!! 新闻组(NNTP)怎么用? 为何我用 Delphi写的 MDI Child Window关闭后无法打开? 为什么这样画不行呢? 语句char a='\72'则变量a包含几个字符 急,不难的问题(有代码) 100mg/kg是什么意思? 将0.2mol/l盐酸200ml与0.1mol/l氢氧化钠100ml混合后,其混合后的溶液显何性?通过计算说明显酸性.碱性.中性? 一块花布,用去全长的4分之1,用去2.5米,这块花布全长多少?一块画布,用去全长的4分之1,还剩7.5米,这块 “100mg/kg/天”是什么意思? 室温下0.1mol/L溶液滴定amL某浓度的HCl溶液,达到终点时消耗NaOH溶液bmL.此时溶液中的氢离子浓度是 急求A 0.1/(a+b) B 0.1b/(a+b)C 1*10^7 D 1*10^-7 一根十分之九米长的铁丝,用去四分之三还剩多少米,如果用去四分之三米那还剩多少米 《求一个数的几分之几是多少》 中和0.2mol氢离子需要多少克氢氧化钠? 一个圆的半径长为r cm,减少2cm后,这个圆的面积减少了多少?) 一个数的几分之几是多少 一块花布,用去9分之1,还剩9米这块花布全长多少米 一个圆的直径是10cm,另一个圆的面积比这个圆的面积少16派(平方cm),求另一个圆的半径(关键是解得步骤 O.1mol/L的NH3.H2O与O.2mol/L的Hcl等体积混合后溶液中的离子浓度大小关系? 100mg等于多少克 停车场有80辆小汽车,比货车多三分之一,停车场停有货车多少辆? 10ml 0.1mol/l HCL 和10mol 0.1mol/l NaCL能组成缓冲溶液吗? 100mg等于多少g 停车场内大货车和小货车数量的比是2:5已只有小汽车60辆有大货车多少辆 下列说法错误的是 A .0.1mol/L的HCl与0.1mol/L的NH3.H2O等体积混合,溶液中的c(NH4A:0.1mol/L的HCl与0.1mol/L的NH3.H2O等体积混合,溶液中的c(NH4+)>c(Cl-)B:PH=3的HCl与PH=11的氨水等体积混合,溶液中的c( 100mg/ml的液体现在要80mg要取多少ul?怎么算? 1μg/L等于多少ng/ml? 某商店库存的花布比白布的2倍多20米,如果每天卖出30米白布和40米花布,几天后白布全部卖完而花布还剩140米,原来库存这两种不共多少米?用一元一次方程解 世纪联华超市停车场客车的辆数是货车的2.5倍.客车开走50辆,货车开走5辆后,剩下的客车和货车的辆数相等,原来的客车和货车各有多少辆?(列方程解) 停车场里有小汽车54辆,大卡车是小汽车的6分之1,又是小货车的3分之1,停放小货车有多少辆 某商店里库存的花布是白布的2倍,如果每天卖30米白布和30米花布,几天后,白布全部卖完,而花布还剩下120米,原来库存花布多少米?请列式解答. 有一块花布长5米,正好可以做6条同样大小的童裤.每条童裤用布几分之几?每天童裤用布几分之几米? 1.096g/ml等于多少g/l 某商店库存的花布是白布的2倍,如果每天卖出30米白布,40米花布,几天后白布卖完,花布还剩120米,原来库存的两种布各是多少米? 有一块花布长5米,正好可以做6条同样大小的童裤,每条童裤用这块布的几分之几 1.84g/ml等于多少g/l 某商店里花布是白布的2倍,如果每天卖30米白布和40米花布.几天后,白布全部买卖完,而花布还剩下120米,原来 库存花布多少米? 有一块花布长7米,正好可做8条同样大小的童裤.1、每条童裤用这块布的几分之几?2、每条童裤用布几分之几米? 25度时,PH=4.75,浓度均为0.1mol/L的CH3COOH、CH3COONa混合溶液C(CH3COO-)+C(OH-) 某商店库存的花布比白布的2倍,如果每天卖出30米白布和40米花布,几天后,白布全还剩20米,而花布还剩180米.问原来库存花布有多少米?求详细过程,要算式,不要方程,谢谢! 有一块花布长7米,正好可做9条同样大小的童裤.1、每条童裤用这块布的几分之几?2、每条童裤用布几分之几米? 0.1mol/L的CH3COOH溶液与0.1mol/L的NaOH溶液等体积混合的电荷守恒、物料守恒和质子守恒分别是什么? 用一块花布和一块黑布,花布长3.5米,黑布长2.7米,妈妈用它们给小明分别做了一套大小相同的衣服.剩下的花布是黑布的3倍,做一套衣服多少米? 将0.1mol/L的醋酸钠溶液20mL与0.1mol/L盐酸10rnL混合后,溶液显酸性,则溶液中有关微粒的浓度关系正确的是将0.1mol/L的醋酸钠溶液20mL与0.1mol/L盐酸10rnL混合后,溶液显酸性,则溶液中有关微粒的浓度 0.1mol/L的CH3COOH溶液和0.1mol/L的NaOH溶液等体积混合后溶液中微粒的物质的量关系正确的是A c(CH3COO-)>c(Na+)>c(H+)>c(OH-)B c(Na+)>c(OH-)>c(CH3COO-)>c(H+)C c(CH3COOH-)+c(CH3COOH)=0.05mol/L D c(Na+) 将AgCl分别放入0.1mol/L的CaCl2溶液和0.1mol/L NaCl溶液中 AgCl在哪种溶液中的溶解度大? 有一块花布长3米正好做4条同样大小的童裤每条童裤用了这块布的几分之几?每条童裤用布几分之几? 用0.1mol•L1 CH3COOH溶液滴定0.lmol•L-1 NaOH至中性时:c(CH3COO—)+ c(CH3COOH)=c(Na+) 为什么错?以及滴定过程中可能情况. 7.30mL 1mol/L NaCl溶液和40mL 0.5mol/L CaCl2溶液混合后,混合液中Cl-浓度为( )A.0.5mol/L B.0.6mol/L C.1.00mol/L D.2mol/L 0.0001g/ml=多少ppm 高三化学!25度时,将20ml 0.1mol/l CH3COOH溶液和20ml 0.1mol/l HSCN溶液分别与20ml 0.1mol/l NaHCO3溶液混合,实验测得的产生气体的体积随时间的变化如下图,反应结束后所得两溶液中,为什么c(CH3COO-)<c(SCN-)? 将一个半径5厘米的圆形铁片,裁剪成半径为4厘米的圆形铁片零件.铁片的面积还剩下多少平方厘米? 30mL 1mol/L NaCl溶液和40mL 0.5mol/L CaCl2溶液混合后,混合液中Cl-浓度为 答案是1mol/L我的疑问是,为什么混合液的体积能相加呢,不是说体积不能相加么.望高手解答体积相加的规则T-T 1.29g/ml等于多少ppm空气中标准的二氧化碳是多少ppm? 一个圆形铁片零件.外圆半径为30厘米,内圆半径为12厘米.这个贴片零件的面积是多少? 色拉油50g等于多少ml 面粉70g等于多少ml 向20ml 0.1mol/L硫酸铵溶液中逐滴加入0.2mol/L的NaOH 向含有等物质的量的HCl和AlCl3的混合溶液中滴入NaOH溶液至过量沉淀质量和n(NaOH)关系图象是怎样的? 一块长方形的铁板长6米,宽是长的3分之1,这块铁板的面积是多少?周长是多少?算式 25℃时,在25mL 0.1mol•L-1的NaOH溶液中,逐滴加入0.2mol•L-1的CH3COOH溶液,溶液的pH与醋酸体积关系下列分析正确的是(   C.D点时溶液中有:c(CH3COO-)+c(CH3COOH)=2c(Na+)c项为什么是2. “赤霉素浓度100mg/kg”是不是100mg开1kg的水呢? 停车场客车的辆数是货车的1.5倍客车开走42辆后,剩下的客车和货车的车数相等原来客车和货车各有多少辆? 一个停车场里70辆公共汽车,比货车多7/3,比轿车少5/2.停车场里有多少辆货车?停车场里有多少轿车? 在0.1mol/L的NaOH溶液160mL与0.15mol/L的HCL溶液100mL混合后的溶液里,NaCL的物质的量浓度是多少?总体积似乎不能把160+100吧 200ml 0.2mol/L的HCl与100ml 0.1mol/L的NaOH混合后,氢离子浓度为多少? 25℃20mL0.1mol/L的NaOH溶液中逐滴加入0.2mol/L醋酸溶液.为什么醋酸体积为20mL时,浓度CH3COO->Na+>...25℃20mL0.1mol/L的NaOH溶液中逐滴加入0.2mol/L醋酸溶液.为什么醋酸体积为20mL时,浓度CH3COO->Na+>H+>OH
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn