QuickRep方面的大问题!(80分)

S

SupWang

Unregistered / Unconfirmed
GUEST, unregistred user!
各位好:
我有一个QuickRep方面的大问题!
我建立一个新的Application。 然后生成一个新的窗体(名字叫
Form2)。然后用QuickRep Wizard去生成一个含有QuickRep的窗体
(名字叫Form3)。然后放一个Button到Form1(主窗体上),这个Button
的 Click event为 Form2.ShowModal。然后放一个Button到Form2上,
这个Button的 Click event 为Form3.QuickRep1.Preview;
然后将主窗体(Form1)放到最大(全屏)。然后运行这个程序。打开
QuickRep预览窗体,然后将QuickRep的窗体最小化。
我发现无法恢复(找回)QuickRep的窗体!!!! 我就无法退出我的
程序了!!!!! :-((
我怎样可以恢复(找回)QuickRep的窗体呢?或者我怎样可以阻止
QuickRep Form最小化呢?我现在已经用哪个特差的QuickRep做了不
少的窗体。我希望您的建议不需要对我的程序做太大的改动。或者
有谁帮我问一下QaSoft。如果您可以很好的解答我的问题,我会给
更多的Points给您。
Regards,
SupWang
 
看不懂!
 
Hi, sun
请告诉我你不明白哪一句。
是这样的。一个程序,它有三个Form,第一个是主窗体叫Form1(它处在最大化状
态),第二个叫Form2, 第三个叫Form3(它含有一个QuickRep)。我按主窗体上的
一个Button来打开Form2,然后按Form2上的一个Button来打开Form3上的
QuickRep (Form3.QuickRep1.Preview)。然后将这个QuickRep窗体最小化。
但我无法再找回这个最小化的窗体(因为Form1处在最大化状态)。你可以试一试
可不可以找回。不能恢复QuickRep窗体的话,我就无法正常退出我的程序。
Regards,
SupWang
 
alt-tab换到其他程序再换回来即可
 
你应该把FORM3设为fsMDICHILD.
 
Another_eYes:
你好。
不能这样转的。我想你一定没有按我说的步骤去试,试一下吧,看一下这个很差
的QReport的大Bug吧。
wuyi:
我不能将Form3设为 fsMDICHILD。实际上我真正的程序是这样的,在主窗体中选
菜单中一项,进入一个数据浏览窗口,如用户要预览报表,就按一下预览按键来
看报表。作为一个多文档(MDI)程序,有fsMDICHILD就要有fsMDIForm(父窗体)。
而一个程序中只能有一个fsMDIForm,而且一定是主窗体。我的不是MDI程序。就
算是MDI程序好象也不能这样用的。你按我上面所说的步骤去试一下好吗?
我想最好的方法是叫QaSoft改(好象要跟他们买软件,他们才会提供技术支持)或
者看看有什么办法阻止QuickRep那个Form最小化。我就用了很多时间都不知如何
去解决。
谢谢,
SupWang
 
如果要去掉minimize那比较简单,下述代码应该可以办到
type
TForm3 = class(TForm)
......
procedure WMSIZE(var aMsg: TMessage);message WM_SIZE;
end;

procedure WMSIZE(var aMsg: TMessage);
begin
if aMsg.WParam=SIZE_MINIMIZED then
aMsg.Result:=0
else
inherited;
end;
end;
 
Another_eYes:
但是Form3是含有QuickRep的,其实Form3.QuickRep1.Preview 根本没有打开
Form3,Form3其实只是设计期间用来放QuickRep的容器罢了,QuickRep好象本身
就是Form。但是我没法重载QuickRep来使最小化失效,而且这样做会导致我的程
序改动很大(上面有不少QuickRep了)。
回答我的问题前请先自己试好先好吗?我想是没那么容易解决的。:)
Regards,SupWang
 
既然你用quickreport, 那就得做好忍受它bug的思想准备。没事干吗用quickreport
默认的preview?
它不是提供在你自己的form上preview吗?(看看quickreport的help)
 
要我自己定制QuickRep?我会大哭的。我那个程序中有20几个QuickRep(已经做好的),现在来改?而且自己定制一个QuickRep是很麻烦的(我前天从QaSoft下载了一篇专门教人定制QuickRep的文章,烦得要死)。
有没谁有QuickRep的用户号,直接问问他们的QuestionRep是什么回事。
 
我没有遇到你的问题!按Alt试一试是否可以切换?
 
怎么要我自己换行的?为什么不自动换行?很难改吗?
要我自己定制QuickRep?我会大哭的。我那个程序中有20几个QuickRep(已经做
好的),现在来改?而且自己定制一个QuickRep是很麻烦的(我前天从QaSoft下载
了一篇专门教人定制QuickRep的文章,烦得要死)。
有没谁有QuickRep的用户号,直接问问他们的QuestionRep是什么回事。
delphi fan2:
你是按我所说的步骤去试的吗?有没有将Form1最大化?
 
我试了,你说的问题是有!
关键在form2.showmodal;用form2.show就没事了!
或者再click Form3.QuickRep1.Preview也可以!
问题是你把form2设置成showmodal!又把form3最小化,form3在桌面上
form1最大化, 使你无法切换!
建议:
开发程序时用户点击的东西越少越安全,象系统的最大、最小化按钮我一般都不叫他们出现!用户是最容易瞎操作的!
 
老兄:才20个报表!我做135个时都是手工操作的!
 
去掉那个最小化按钮, 对付用吧. 别花费精力去fix那个QR了. QR里面Bugs成堆, 数
不胜数.
把你的Form3的BorderIcons属性里面的biMinmize设置成false就行了.
 
delphi fan2:
还没有睡啊。
我不可以用 form2.show,一定要用ShowModal. 主要是怕用户乱按,搞的
Form2不见了。而且如果我是Form1 ---> Form2 ---> Form3 ---> Form4 --->
QuestionRep Form 那怎样?如果 click Form3.QuickRep1.Preview again 将会
再打开一个Preview Form。绝对不可以接受。:)
我的QuestionRep上放了不少东西而且字段有多,而且现在时间也是比较紧
了,赶着做好卖钱,吃饭。有点好奇,为什么150个QuickRep都用手工做呢,好
象最低版本的QuestionRep都有Wizard的。
早点睡吧,明天见。
 
huizhang:
你好,你都没睡吗?
其实Form3.QuickRep1.Preview 根本没有打开Form3,Form3其实只是设计期间用来放QuickRep的容器罢了。所以你改Form3的BorderIcons属性里面的biMinmize设置成false也是不行的。你试一试好了。
 
喔,又忘了Enter Enter Enter Enter Enter Enter
huizhang:
你好,你都没睡吗?
其实Form3.QuickRep1.Preview 根本没有打开Form3,Form3其实只是设计期
间用来放QuickRep的容器罢了。所以你改Form3的BorderIcons属性里面的
biMinmize设置成false也是不行的。你试一试好了。
 
哈哈, 告诉你改那个BorderIcons你就能改:
1. 以文本方式打开 lib 目录下的 qrprev.dfm 文件
2. 在 Height 下面加上一行: BorderIcons = [biSystemMenu, biMaximize]
3. 把''里面的 Caption 汉化.
4. 保存. 一切OK, 没问题.
结果如下:
object QRStandardPreview: TQRStandardPreview
Left = 251
Top = 220
Width = 652
Height = 579
BorderIcons = [biSystemMenu, biMaximize]
Caption = '报表 - 打印预览'
...
end
 

huizhang:
我也是刚想到改这个文件,因为我以前就是该这个文件将QuickRep的界面汉化了
。 你加那句错了应该是 BorderIcons = [biMinimize, biMaximize] 不然系统
菜单中还可以最小化。
Regards,SupWang
 
顶部