QReport的问题(100分)

  • 主题发起人 主题发起人 fshell
  • 开始时间 开始时间
F

fshell

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个构件,写了一个线程,不停读取硬件某一数值,当读到的时候,就触发一个事件,
然后我在主线程里相应这个事件,并且调用一个QReport的Print()过程,发现就死机了。
后来经过调试验证,发现主要是在线程里面调用QReport就会死机,可是我程序是不能因
为打印而中断硬件的查询读取的,那我应该怎么办呢?
我后来专门写了一条线程,在线程内查询一个打印工作队列,当有打印工作的时候,就
调用QReport打印。而主线程要打印的话,就把打印任务推入打印人物队列,发现打印
线程一调用QReport打印的话,一样是死机没商量。天啊~
 
是不是你的打印机与你的硬件有冲突。
 
绝对没有,因为如果我在主线程调用QReport的话,就非常正常,没有任何问题。
但在其他线程(无论是控件查询硬件的线程还是处理打印队列的线程)里,一调用QReport
一律都是挂掉。 :(
 
这个是quickrep的BUG吧
如果你只想打简单的东西就自己动手吧!
用CANVAS
 
怎么死的?
1.蓝屏
2.任何操作无反应
3.显示异常
4.重起
 
你试试建立一个主进程的消息处理过程,由这个过程调用QReport进行打印,
当查询硬件的线程读取硬件某一数值时,发送消息给主进程的消息处理过程。
 
据估计, 就是线程嵌套的问题了。 :(

虽然还是解决不了, 但kk98的说法跟猜测的原因相象吧。
 
kk98的说法DELPHI已经帮你做了,在线程中调用Synchronize就行(不过线程会
停下来等待喔)
 
后退
顶部