線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1002
推到 Plurk!
推到 Facebook!

如何實現沒有等待回應的MessageDlg功能

尚未結案
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-27 20:50:46 IP:61.165.xxx.xxx 未訂閱
題目說的可能不是很清楚。實際是有這樣一種需要:在為用戶做準備列印時給用戶一個可以回應的介面,既用戶可以中止列印,因為往往會有很多頁,而用戶不需要。但如果用戶不作回,那麼它就一直準備下去。。。。怎樣做好呢?請教請教。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-27 21:44:55 IP:61.229.xxx.xxx 未訂閱
在form裡適當的位置擺個Bitbtn之類的按鈕,按鈕的程序是將某一全域變數設定成另一個值.例印程式在適當時間去檢查這個全域變數以決定是否列印繼續列印.關鍵在於要在列印的迴圈裡增加一行Application.Process,這會讓程式的畫面更新,作業系統會要求程式處理user在畫面上的動作.
 
var
  bStopPrint:Boolean; //全域變數
//BitBtn的程序
procedure form1.BitBtnOnClick(sender:TObject);
begin
  bStopPrint:=True;
end;
//列印的程式
procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  Application.process;
end;
procedure TQuickReport2.QuickRepAfterPrint(Sender: TObject);
begin
  Application.process;
  if bStopPrint then
    Self.close;
end;    
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-28 21:31:36 IP:61.165.xxx.xxx 未訂閱
引言: 在form裡適當的位置擺個Bitbtn之類的按鈕,按鈕的程序是將某一全域變數設定成另一個值.例印程式在適當時間去檢查這個全域變數以決定是否列印繼續列印.關鍵在於要在列印的迴圈裡增加一行Application.Process,這會讓程式的畫面更新,作業系統會要求程式處理user在畫面上的動作.
 
var
  bStopPrint:Boolean; //全域變數
//BitBtn的程序
procedure form1.BitBtnOnClick(sender:TObject);
begin
  bStopPrint:=True;
end;
//列印的程式
procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  Application.process;
end;
procedure TQuickReport2.QuickRepAfterPrint(Sender: TObject);
begin
  Application.process;
  if bStopPrint then
    Self.close;
end;    
謝謝大大的解答。可是我用的是兩個表單,一個表單中的某一按鍵實現另一報表表單的預覽功能。因此用application.process好象不行啊。而且在QReport的表單中並不認process方法,只認processmessages.是否需要加其他的unit 呢?
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-29 15:00:12 IP:61.222.xxx.xxx 未訂閱
引言:
引言: 在form裡適當的位置擺個Bitbtn之類的按鈕,按鈕的程序是將某一全域變數設定成另一個值.例印程式在適當時間去檢查這個全域變數以決定是否列印繼續列印.關鍵在於要在列印的迴圈裡增加一行Application.Process,這會讓程式的畫面更新,作業系統會要求程式處理user在畫面上的動作.
 
var
  bStopPrint:Boolean; //全域變數
//BitBtn的程序
procedure form1.BitBtnOnClick(sender:TObject);
begin
  bStopPrint:=True;
end;
//列印的程式
procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  Application.process;
end;
procedure TQuickReport2.QuickRepAfterPrint(Sender: TObject);
begin
  Application.process;
  if bStopPrint then
    Self.close;
end;    
謝謝大大的解答。可是我用的是兩個表單,一個表單中的某一按鍵實現另一報表表單的預覽功能。因此用application.process好象不行啊。而且在QReport的表單中並不認process方法,只認processmessages.是否需要加其他的unit 呢?
< face="Verdana, Arial, Helvetica"> 你要不要把你的程式碼放上來,這樣可能會比較快幫你找到答案
系統時間:2024-06-27 2:56:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!