Activex调用打印机的问题?急~~~

hwy 2001-10-11 09:10:55
下面是一个ASP组件的代码,代码中只有一个方法show,相当简单,但我不明白哪里不对:

unit U_rr;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
ComObj, ActiveX, AspTlb, rr_TLB, Dialogs,StdVcl,printers,Graphics;

type
Trrshow = class(TASPObject, Irrshow)
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
procedure show; safecall;
end;

implementation

uses ComServ;

procedure Trrshow.OnEndPage;
begin
inherited OnEndPage;
end;

procedure Trrshow.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
end;

procedure Trrshow.show;
begin
Response.Write('<h3>Delphi文本</h3>');
with Printer do
begin
BeginDoc;
Canvas.Textout(10, 10, '程序执行成功');
EndDoc;
end;
end;

initialization
TAutoObjectFactory.Create(ComServer, Trrshow, Class_rrshow,
ciMultiInstance, tmApartment);
end.

-------------------------
调用的脚本如下:(qqq.asp)
<HTML>
<BODY>
<TITLE> Testing Delphi ASP </TITLE>
<CENTER>
<H3> You should see the results of your Delphi Active Server method below </H3>
</CENTER>
<HR>
<% Set DelphiASPObj = Server.CreateObject("rr.rrshow")
DelphiASPObj.show
%>
<HR>
</BODY>
</HTML>

--------------
这样页面是打不开的,也就是说有错误,把WITH后的内容去掉,即成为这样:

procedure Trrshow.show;
begin
Response.Write('<h3>Delphi文本</h3>');
end;
是正确执行的,难道Activex不能调用打印机吗,这当然不可能,但问题在哪呢?
另外,为什么设断点时不能中断呢?我已经在Run->Param中设置过用IE执行qqq.asp。

补充:上述做法好象是不对的,ActiveX 和 ASP Object 差别很大,我现在用的是 ASP Object,可能后果是提交的同时就打印到服务器上,但我要求是在客户机上打印出来,那又应该用哪个呢?我用AutoMation object试过,好象也是不行。
用ActiveForm肯定是可以的,已实现过。
请高手指点一下吧!
...全文
199 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoj111 2001-10-16
  • 打赏
  • 举报
回复
将Canvas.Textout(10, 10, '程序执行成功');改成Response.write('<h3>程序执行成功</h3>');
hwy 2001-10-16
  • 打赏
  • 举报
回复
试了,不行的。
hwy 2001-10-15
  • 打赏
  • 举报
回复
up
hwy 2001-10-15
  • 打赏
  • 举报
回复
to :xiaoj111(xiao) ,谢谢关注。

这里是系统产生的代码,应该没有什么问题。
ComServ语法检查时出错。完整的写法是ComServ.ComServer,前面已有Uses,这里可以这样写(ComServer)。
xiaoj111 2001-10-15
  • 打赏
  • 举报
回复
create后的参数不对把,应是ComServ.试试看。
hwy 2001-10-15
  • 打赏
  • 举报
回复
我的要求很简单,web方式下的打印组件,在客户端(用户浏览器)打印出结果,但不能用ActiveForm技术。难道没有人用过吗?
hwy 2001-10-12
  • 打赏
  • 举报
回复
up
hwy 2001-10-12
  • 打赏
  • 举报
回复
真的没有办法吗?
hwy 2001-10-12
  • 打赏
  • 举报
回复
up
内容概要:本文详细介绍了Anaconda的下载、安装与配置方法(2025最新版)。Anaconda是一个开源的Python/R数据科学集成开发平台,预装了1500多个科学计算库,并提供conda包管理和环境管理功能。文章首先列出了系统要求,接着分别讲述了适用于不同操作系统的下载方式,包括官方下载和国内镜像下载。然后,具体讲解了Windows、macOS和Linux三种操作系统的安装步骤,以及环境变量的手动配置方法。此外,还提供了验证安装是否成功的命令和配置国内镜像源的方法,以提高下载速度。最后,列出了一些常用conda命令和常见问题的解决方案。 适合人群:从事数据科学、机器学习领域的研究人员和开发者,特别是需要频繁使用Python科学计算库的用户。 使用场景及目标:①帮助用户快速搭建Python开发环境,尤其是需要多个Python版本共存或隔离环境的情况下;②解决因网络原因导致的下载速度慢的问题;③提供详细的安装指南,确保安装过程顺利进行;④指导用户正确配置环境变量,避免常见的安装后无法使用的错误。 阅读建议:由于Anaconda涉及多平台安装和配置,建议读者根据自己的操作系统选择相应的章节重点阅读,并严格按照步骤操作。对于初次使用者,建议先从简单的安装入手,再逐步学习环境管理和包管理的相关命令。

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧