<big><b>求TPreviewBox控件的详细使用说明及例子!</b></big>(100分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
  我要自己写打印预览和打印的代码,但是我不知道TPreviewBox控件怎么用,我需要
TPreviewBox控件的详细使用说明及例子!
 
你是指Ehlib自带的那个东东吧,控件包里就带有TPreviewBox的Demo,如果你没有请和我
联系:balaschen@163.net
 
我是在BaKuBaKu的EasyGrid中看到这东西的。
不知道Ehlib是否带源代码,并可作商业用途???
 
Ehlib好象不是免费的。
 
我也想知道。
 
看了那个例子仍然不知道
procedure DrawPage(DrawCanvas: TCanvas; DrawRect: TRect; PageIndex: Integer; Printing: Boolean); virtual;
是怎样用的?

<h1>究竟怎样填数据???</h1>
 
<font color=red><h1>再加200分求答案!</h1></font>

直到我学会,不够还可以再加!!!
 
其实自己写一个打印预览很简单,知道tmetalfile 和tmetalfilecanvas吗?
利用这两个类可以创建自己的打印预览程序,可以使用line在tmetalfilecanvas
上面画线等
 
如果要得急,就用Ehlib,把它的PreviewBox的源码改一下,想怎么改就用怎么改
 
左轻侯:
  我现在就是不知道PreviewBox怎么用???

bh1018:
  可以介绍一下,或者举个例子吗???
 
To Honestman:
EasyGrid 用的 TPreviewBox 不是通用的控件,是我自己为预览 EasyGrid 而写的,
但是也可以用于其他的地方,方法就是 OnDrawPage 事件。
如果你希望写自己的预览程序,我就把参数说明一下:
procedure DrawPage(DrawCanvas: TCanvas; DrawRect: TRect; PageIndex: Integer; Printing: Boolean);
DrawCanvas: 画布对象
DrawRect : 画布区域
PageIndex : 页面号
Printing : 指明是处在预览或是打印期间(对屏幕绘图和对打印机绘图在某些方面有
细微的区别,用这个标志来判断)
比如:

procedure TForm1.PreviewBox1OnDrawPage(DrawCanvas: TCanvas; DrawRect: TRect; PageIndex: Integer; Printing: Boolean);
begin
with DrawCanvas do
begin
DrawText(...);
end;
end;

TPreviewBox 的源码我给过 Kurt ,你可以找他要一份。
 
to BaKuBaKu:
Kurt已经把源代码给我了。
你的例子是否可以稍微详细一点?
另外,如何画表???


 
如果用EasyGrid,BaKuBaKu说的当然是正解:-)
如果用Ehlib,看看它的Demo就是了,很简单啊

BTW,BaKuBaKu你的信我还一直没回,这一阵实在太忙,我尽快回你

 
<herf>fdfdfd</herf>
 
<font color=red><h1>再加200分求答案!</h1></font>
 
<font color=red><h1><herf='http://www.5460.net'>再加200分求答案!</herf></h1></font>
 
<ahref="Dispuser.asp?UserName=bh1018">再加200分求答案!</a>
 
我看你还是自己写一个吧,给GRID加上一个PREVIEW即可。
希望以下部分代码对你有帮助,不过你要自己写一个form
里面有一个tpaintbox,用rdisp:trect;
fprnprver:tprnclass;
StretchDraw(rDisp,FPrnPrver.FMetafile);
就可以写自己的打印预览,至于自己的grid的打印预览那就需要画线,
输出一些文字,代码太多了,自己写吧!
type
TPrnPrv=class;
private
FCanvas: TMetafileCanvas;
FMetafile: TMetafile;
public
constructor Create;
property Canvas: TMetafileCanvas read FCanvas;
procedure Line(iX1, iY1, iX2, iY2: integer);
end;
constructor TPrnPrv.Create;
begin
inherited Create;
FMetafile := TMetafile.Create;
initprnandscr;
FGapRow := 3;
FGapCol := 3;
end;

procedure TPrnPrv.Line(iX1, iY1, iX2, iY2: integer);
begin
with Canvas do begin
MoveTo(iX1, iY1);
LineTo(iX2, iY2);
end;
end;
 
大虾们,还在放假吗?
 
谁有带源码的?
给我一份!
E: wuwzy214@263.net
 
后退
顶部