全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1008
推到 Plurk!
推到 Facebook!

請教一個QReport的問題

尚未結案
wscski
一般會員


發表:19
回覆:38
積分:11
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-19 05:07:08 IP:61.64.xxx.xxx 未訂閱
請問要如何在DetailBand中動態產生QRLabel?? 我的目的是要從資料庫中取得資料,在根據資料筆數的不同,做一些處理後 再動態產生QRLabel來顯示資料 我在DetailBand的BeforePrint事件中這樣寫(BCB的程式碼): TQRLabel *TempQRLabe = new TQRLabel(DetailBand1); TempQRLabe->Left = 5; TempQRLabe->Top = 30; TempQRLabe->Caption = "這是測試"; 結果並無法顯示資料,也不知道QRLabel到底有無產生。 請教大師們,這樣寫哪裡錯誤?請指教 謝謝喔!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-19 08:34:19 IP:210.65.xxx.xxx 未訂閱
Hi wscski,    請參考 http://delphi.ktop.com.tw/topic.php?topic_id=48080 改為: TempQRLabe := TQRLabel.Create(Self); TempQRLabe .Parent := DetailBand1; TempQRLabe .Left := 5; TempQRLabe .Top := 10; TempQRLabe .Caption := '這是測試'; 發表人 -
------
Fishman
wscski
一般會員


發表:19
回覆:38
積分:11
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-19 10:55:17 IP:203.64.xxx.xxx 未訂閱
感謝Fishman大大的指教,我造大大的方式改 但是還是有問題,出現「Access Violation....」的錯誤 我目的是要從資料庫中取得該筆記錄的某一個欄位 根據這個欄位數值N,在該筆DetailBand中動態產生N個QRLabel顯示其他資料 程式碼大致如下: void __fastcall TQRepForm::DetailBand1BeforePrint(TQRCustomBand *Sender, bool &PrintBand) { int N = ADOQuery->FieldByName("N")->AsInteger; for(int i=0;i<=N;i ) { TempQRLabel = new TQRLabel(DetailBand1); TempQRLabel->Parent = DetailBand1; TempQRLabel->BringToFront(); TempQRLabel->Left = 5; TempQRLabel->Top = i*20; TempQRLabel->Caption = "這是測試"; } } 還望大大再次指教! 抱歉,我是用BCB,貼到DELPHI版來,真不好意思! 發表人 - wscski 於 2004/04/19 10:57:30 發表人 - wscski 於 2004/04/19 10:58:28
wscski
一般會員


發表:19
回覆:38
積分:11
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-19 16:03:15 IP:203.64.xxx.xxx 未訂閱
我發現DetailBand中的元件都要一樣 如果我在FormCreate時先動態產生就沒問題 但是每一個DetailBand裡產生的元件都是一樣的 原先希望每一個DetailBand裡產生不同數目的元件無法達成 也就是把動態產生元件的程式碼寫在DetailBand的BeforePrint事件中即會出現錯誤
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-19 16:13:54 IP:210.65.xxx.xxx 未訂閱
Hi    你也許可以設定固定的 QRLabel,再於 DetailBand 的 BeforePrint 事件中,去指定各個 QRLabel 的 Enabled 屬性,來決定是否印出     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
wscski
一般會員


發表:19
回覆:38
積分:11
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-19 16:56:47 IP:203.64.xxx.xxx 未訂閱
引言: Hi 你也許可以設定固定的 QRLabel,再於 DetailBand 的 BeforePrint 事件中,去指定各個 QRLabel 的 Enabled 屬性,來決定是否印出 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica"> 再次感謝Fishman大大指教 您的意思是先在DetailBand中先建立數目夠用的QRLabel 再於BeforePrint 事件中顯示資料,並且關掉用不到的QRLabel?? 這倒是個好方法,幸好我需要的QRLabel不會太多,50個就夠用 不過,不曉得會不會一開始就佔掉記憶體?一筆Record建立50個QRLabel,也蠻恐怖的 ^^ 如果是每一個DetailBand開始Print時才佔用記憶體,而關掉的QRLabel不會佔用記體體,這樣倒是還好 我會試試看! 謝謝你!
系統時間:2024-05-06 1:16:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!