天啊,郁闷,dxComponentPrinter只能打印2页,是不是需要设置什么属性才能打全啊.急!急!急! ( 积分: 200 )

  • 主题发起人 主题发起人 angelaqazwsx
  • 开始时间 开始时间
A

angelaqazwsx

Unregistered / Unconfirmed
GUEST, unregistred user!
我的dxComponentPrinter连接了cxmemo后,打印不全啊.只能打印2页.而cxmemo的内容很多,远不只这些啊!而cxmome的scrollbars的属性是设置成ssBoth.然后怎么打印都打印不全,只能打印那么多东西.
怎么回事?请大家帮帮忙啊!
200分送上,希望有熟悉的朋友能帮忙看看
 
和cxmome的scrollbars有什么关系? dxComponentPrinter不熟,但是有没有可能是字符串长度不够读MEMO里的内容?
 
默认只能打印显示的数据
参照这个改一下,生成IMAGE然后打印
uses richedit;

procedure TForm1.Button1Click(Sender: TObject);

var

Range : TFormatRange;

LastChar, MaxLen, LogX, LogY: Integer;

begin

FillChar(Range, SizeOf(TFormatRange), 0);

with Image1, Range do

begin

LogX := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);

LogY := GetDeviceCaps(Canvas.Handle, LOGPIXELSY);

hdc := Canvas.Handle;

hdcTarget := hdc;

rc.right := Image1.ClientWidth * 1440 div LogX;

rc.bottom := Image1.ClientHeight * 1440 div LogY;

rcPage := rc;

LastChar := 0;

MaxLen := GetTextLen;

chrg.cpMax := -1;

repeat

chrg.cpMin := LastChar;

LastChar := SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 1,

Longint(@Range));

until (LastChar >= MaxLen) or (LastChar = -1);

end;

SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 0, 0);

Image1.Refresh;

end;
 
学习.......
 
我也想知道
 
直接打印内存,DELPHI5程序员指南上有的,你找找看。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部