前台form功能如何对用户透明而后台实现? ( 积分: 100 )

  • 主题发起人 主题发起人 clark_x
  • 开始时间 开始时间
C

clark_x

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个现成的打印功能界面,用户想整合一起打印。
想在后台调用输入要素并调用打印,然后退出界面,都对用户透明
直接
form2 := Tform2.Create( Application );
form2.xxx.ItemIndex := 0; // 选择
form2.btnprinterClick(Sender);
//form2.ShowModal; // 不显示

可以稳定运行吗?
 
有两个现成的打印功能界面,用户想整合一起打印。
想在后台调用输入要素并调用打印,然后退出界面,都对用户透明
直接
form2 := Tform2.Create( Application );
form2.xxx.ItemIndex := 0; // 选择
form2.btnprinterClick(Sender);
//form2.ShowModal; // 不显示

可以稳定运行吗?
 
最后加一句freeandnil(form2);
 
现在有几个问题
form的原来提示如何屏蔽?
form好像create还没有onshow,如果showmodal再hide 都隐藏不了窗口。
 
没测试过,感觉free前应该加form2.close(如果OnClose中的Action设置为caFree,就不必form2.Free了);为了避免form2闪烁,最好在create中加入Left:=-1*self.Width;
 
form的原来提示如何屏蔽?
-------
如果是ShowMessage的消息应该是没法屏蔽的,最好去改源代码。
可以加预定义语句:
unit xxxx;
{$define _NoFormPrint}

begin
{$ifndef _NoFormPrint}
ShowMessage('打印提示');
{$endif}
这样不破坏以前的程序,以后出问题也好恢复,去掉{$define _NoFormPrint}就可以了。

form好像create还没有onshow,如果showmodal再hide 都隐藏不了窗口。
-------------------------------
没必要调用Show或者ShowModal了,如果是MDIchild会自己显示出来,所以有我上面提的Left := -1*Width;

 
我还需要formshow后,才能使用一些原有的功能。
能否实现?
 
现在测试的结果,主要就是窗口onshow事件没有调用我的formshow的一些初始化设置程序,查询无法继续,后面打印就没有意义了。 刚才没有说清楚,sorry
 
我的想法是把这个窗口和显示一样的使用,而不显示出来。 :) 虚拟使用窗口,呵呵
 
那就让窗口的宽、高都为0,然后设置左为-widith
 
后退
顶部