不得不问:Ehlib & PrintDBGridEh如何在运行时设置AfterGridText、BeforeGridText?(50分)

  • 主题发起人 主题发起人 yuxuant
  • 开始时间 开始时间
Y

yuxuant

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。
关键是格式。谢谢!
 
Example:
PrintDBGridEh1.SetSubstitutes(['%[Today]',DateToStr(Now)]);
这个例子怎么不好使?
 
将一个Tstrings对象给它就可以了,如使用MEMO的LINES属性(TStrings)设置。
PrintDBGridEh1.BeforeGridText := memo1.Lines;
PrintDBGridEh1.Preview;
 
对了,还有格式问题,可以这样,
count
str1 = 'Hello %s';
var
str2: string;
begin
str2 := 'yuxuant';
PrintDBGridEh1.BeforeGridText.Add(Format(str1,[str2]));
PrintDBGridEh1.Preview;
//这样就可以打印出 Hello yuxuant
end;

OK!
 
现在能在运行时调用RichEdEh,编辑rich文本,但是预览时没有格式了!比如字体大小、颜色、字型等等。
最好是让用户所见即所得。谢谢!
 
procedure TForm1.bPreviewClick(Sender: TObject);
var s:TMemoryStream;
begin
s:=TMemoryStream.Create();
try
PrintDBGridEh1.DBGridEh := DBGridEh1;
RichEdit1.Lines.SaveToStream(s);
s.Position:=0;
PrintDBGridEh1.BeforeGridText.LoadFromStream(s);
finally
s.free;
end;
PrintDBGridEh1.SetSubstitutes(['%[Today]',DateToStr(Now)]);
PrintDBGridEh1.Preview;
end;
 
多人接受答案了。
 
后退
顶部