FR报表 自动缩小的代码
procedure TfrMemoView.Draw(Canvas: TCanvas);
var
newdx: Integer;
OldScaleX, OldScaleY: Double;
fs: integer; //2002.7.25 LBZ
begin
SetTextCharacterExtra(Canvas.Handle, Round(CharacterSpacing * ScaleX));
Self.Canvas := Canvas;
fs := font.size;
if ((Flags and flAutoSize) <> ) and (Memo.Count > ) and
(DocMode <> dmDesigning) then
begin
newdx := CalcWidth(Memo);
if (Alignment and frtaVertical) <> then
begin
dy := newdx;
end
else if (Alignment and frtaRight) <> then
begin
x := x + dx - newdx;
dx := newdx;
end
else
dx := newdx;
end; BeginDraw(Canvas);
Streaming := False;
Memo1.Assign(Memo); if Memo1.Count > then
begin
FWrapped := Pos(#, Memo1.Text) <> ;
if Memo1[Memo1.Count - ] = # then
Memo1.Delete(Memo1.Count - );
OldScaleX := ScaleX; OldScaleY := ScaleY;
ScaleX := ; ScaleY := ;
CalcGaps;
if ((Flags and flAutoSize) <> ) and (DocMode <> dmDesigning) then
dx := dx + ;
// WrapMemo;
// ScaleX := OldScaleX; ScaleY := OldScaleY;
// RestoreCoord;
//2002.7.25 LBZ在WrapMemo与ScaleX := OldScaleX; ScaleY := OldScaleY;之间改为:
while true do
begin
WrapMemo;
if (VHeight > abs(drect.top - drect.Bottom)) and (Font.Size>) then
begin
Font.Size := Font.Size - ; //当字体过大时,适当缩小字体
end
else break;
end;
//2002.7.25 LBZ
ScaleX := OldScaleX; ScaleY := OldScaleY;
RestoreCoord;
Memo1.Assign(SMemo);
end; CalcGaps;
if not Exporting then ShowBackground;
if not Exporting then ShowFrame;
if Memo1.Count > then ShowMemo;
SetTextCharacterExtra(Canvas.Handle, );
RestoreCoord;
font.size := fs;
end; 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 whf » 星期二, 年7月30日 : good 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 mypeoplelxt » 星期四, 年8月1日 : http://delphibbs.com/delphibbs/dispq.asp?lid=746952
多谢多谢,
如果需要分的话请到上述地址去拿,有50分,一直没给.
不过这也还是有问题,如果要是我的memo高度够高,但宽度不够,岂不是lbz的代码无效?
代码修改中............................有没有更完善的? 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 whf » 星期四, 年8月1日 : 更完善的,可以试试ReportMachine,可以按宽度或高度缩放
http://reportmachine.delphibbs.com/ 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 mypeoplelxt » 星期五, 年8月2日 : 现在报表都做完了,当时考虑是不会出现需要字体缩小的问题的,要不就用RB了,
所以,现在,请求帮助中.......... 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 lbz » 星期五, 年8月2日 : 上一段代码加上以下代码(以下代码实现宽度字体自动缩小--自动换行=false时有效)
procedure TfrMemoView.ShowMemo;
var
DR: TRect;
ad, ox, oy: Integer;
.
.
.
//2002.8.1计算memo最长的行宽。LBZ
function wid: integer;
var i, j: integer;
begin
j := ;
for i := to memo1.Count - do
begin
if j < tw(memo1[i]) then j := Canvas.TextWidth(Memo1[i]);
end;
wid := j;
end;
//2002.8.1计算memo最长的行宽。LBZ begin
AssignFont(Canvas);
SetTextCharacterExtra(Canvas.Handle, Round(CharacterSpacing * ScaleX));
DR := Rect(DRect.Left + , DRect.Top, DRect.Right - , DRect.Bottom - );
VHeight := Round(VHeight * ScaleY); //2002.8.1 当字体缩放=true AND 自动换行=false时,自动单行字体缩放 LBZ
if ((Flags and flWordWrap) = ) and (wid > abs(drect.Left - drect.Right)) then
begin
if memo1.Count > then
begin
while (wid > abs(drect.Left - drect.Right)) and (Canvas.Font.Size > ) do
begin
canvas.Font.Size := canvas.Font.Size - ;
end;
VHeight := Round((Canvas.Font.size * / * memo1.count + LineSpacing * (memo1.count - ) + Gapy + Gapy) * ScaleY);
end;
end;
//2002.8.1 当字体缩放=true AND 自动换行=false时,自动单行字体缩放 LBZ if (Alignment and $) <> then
begin
ad := Alignment;
ox := x; oy := y; 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 gdlz » 星期六, 年12月27日 : lbz,你好!
我是Delphi的新朋友,關於宽度字体自动缩小的代碼有沒有漏掉一點,還像沒顯示完,加在代碼中報表沒有變,請回复.謝! 页首
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做?(有分的)
帖子 由 lhbzq » 星期六, 年1月17日 : 请问:tw()是什么函数,是不是漏了?
FR报表 自动缩小的代码的更多相关文章
- 有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做
有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做 我来答 浏览 49 次 1个回答 #吃瓜大会# Angelababy演技被吐槽, 你觉得她的演技怎么样? 最佳答案 热心 ...
- jQuery: 图片不完全按比例自动缩小
有时我们会有这样的需求:让图片显示在固定大小的区域.如果不考虑 IE6 完全可以使用 css 的 max-width 限制宽度自动按比例缩小显示,但是这样有个问题,就是如果按比例缩小后,图片高度不够, ...
- [Dynamic Language] 用Sphinx自动生成python代码注释文档
用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...
- JS倒计时网页自动跳转代码
<title>JS倒计时网页自动跳转代码</title> <script language="JavaScript" type="text/ ...
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
- Linux oracle数据库自动备份自动压缩脚本代码
Linux oracle数据库备份完成后可以自动压缩脚本代码. 复制代码代码如下: #!/bin/bash #backup.sh #edit: www.jbxue.com ##系统名称 sysname ...
- wsdl自动生成Java代码,根据wsdl生成Java代码
wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ...
- Eclipse没法自动补全代码解决
Eclipse没法自动补全代码解决 Eclipse无法自动补全代码解决 Window->Java->Editor->Content Assist->Advanced
- 可以放在html代码中的自动跳转代码
可以放在html代码中的自动跳转代码 有3种方法可以实现html的页面跳转,1,refresh 2,onload事件中加入代码 3,js实现 1.<html><body> ...
随机推荐
- EMV技术学习和研究(转)
刚开始学习EMV&PBOC,磕磕碰碰,感谢xuture的<EMV技术学习和研究>给了很大帮助,让我少走了很多弯路,也感谢广俊.surge.艾零.小SO.Spinach.龙行天下的帮 ...
- Python Paramiko模块安装和使用
1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...
- Mybatis 级联查询 (一对多 )
后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试 ...
- eclips引入Java源代码
window->>preferences->>Java->Installed JRES 如图所示 这是中文本的 点击“Installed JRES”选择如下图所示的jdk ...
- 如何在腾讯云上开发一款O2O书签?
版权声明:本文由潘佳宇原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/187 来源:腾云阁 https://www.qclo ...
- css归纳
css文本框与按钮不对齐解决方案: 文字要包含在label标签中,并设置行高,否则文字会与文本框的顶 端对齐:文本框要设置vertical-align:middle;否则文本框与button顶端对齐: ...
- selenium+python笔记6
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 将登陆动作封装成function "" ...
- python中文处理
源码文件为utf-8格式 CODEC = 'utf-8': VS在“高级保存选项”中选择“UTF-8 65001” input(u'中文');print(u'中文')
- Linux查看系统信息(操作系统版本,进程,任务,CPU,内存,磁盘等信息)
查看操作系统: cat /proc/version # 内核版本 cat /etc/issue # 发行版本 head -n 1 /etc/issue uname -a lsb_release ...
- CI(CodeIgniter)框架介绍
CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包.它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI 提供了一套丰富的类库来满足通常的任务需求,并且提供了一 ...