大虾们帮忙看一下这段代码,郁闷,不知何故呀!

BigAngell 2004-12-18 04:11:22
有两个窗体Form1, Form2;

Form2中有这样一个过程:
procedure TF_PrintLR.AutoNextRow(var QRLabelObj : TQRLabel; TextValue : String);
var
i:Integer;
tmpMemo : TMemo;
LastStr:String;
begin
tmpMemo := TMemo.Create(nil);
tmpMemo.Parent := Form2;
tmpMemo.Font:=QRLabelObj.Font;
tmpMemo.Width:=QRLabelObj.Width + 3;
tmpMemo.Text := TextValue;

for i:=0 to tmpMemo.Lines.Count-1 do
begin
LastStr := LastStr + tmpMemo.Lines[i]+ #13;
end;
QRLabelObj.Caption:=LastStr;
tmpMemo.Free;
end;

我在Form1中写了如下代码:
if Form2 = nil then
begin
try
Application.CreateForm(TForm2, Form2);
Form2.QuickRep1.PreviewModal; //<-
finally
Form2.Free;
Form2 := nil;
end;
end;

我在Form2.QuickRep1BeforePrint中写了如下代码:
if LeftOk then
begin
AutoTurnRow(QRLabel1, ContentText); //ContentText: 内容介绍
end;

当代码执行到Form2.QuickRep1.PreviewModal时,没有出现任何错误,我能看到报表,也是我想要的效果(换行),但是当试图关闭报表时,弹出错误信息:“Prject HongHo.exe raised exception class EOSError with message 'System Error. Code;1400. 无效的窗口句柄。'. Process stopped. Use Step or Run to continue.”

后来经调试发现,如果不调用 AutoTurnRow 这个过程,改用QRLabel1.Caption := '...'序程则不会出错。

奇怪的事呀,期待高手解决些问题,谢谢!
...全文
133 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenhui1215 2004-12-23
  • 打赏
  • 举报
回复
UP
Kevin_Lmx 2004-12-23
  • 打赏
  • 举报
回复
你试试 tmpMemo := TMemo.Create(self);
然后不要自己去释放它。^_^
yuetianbao 2004-12-23
  • 打赏
  • 举报
回复
UP
BigAngell 2004-12-23
  • 打赏
  • 举报
回复
UP
micher_yan 2004-12-23
  • 打赏
  • 举报
回复
AutoTurnRow(QRLabel1, ContentText); 提示无效的窗口句柄,你传句柄试试
AutoTurnRow(QRLabel1.Handle, ContentText);
BigAngell 2004-12-18
  • 打赏
  • 举报
回复
我在问题中指明过——》“后来经调试发现,如果不调用 AutoTurnRow 这个过程,改用QRLabel1.Caption := '...'序程则不会出错。”
BigAngell 2004-12-18
  • 打赏
  • 举报
回复
有什么区别吗,以前我都是这样创建窗体的,很正常呀

能说说这两者之前的区别吗?
ln521 2004-12-18
  • 打赏
  • 举报
回复
定义窗体的变量
create
BigAngell 2004-12-18
  • 打赏
  • 举报
回复
后来,我将tmpMemo直接放到Form2窗体上,仍然不行
BigAngell 2004-12-18
  • 打赏
  • 举报
回复
在线等呀!
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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