Memo Add字串會當掉 |
尚未結案
|
typenew
一般會員 發表:8 回覆:17 積分:5 註冊:2004-03-26 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
引言: 小弟在Form上用了兩個Memo元件,要求是將第一個Memo1上字串一筆一筆經過某些處理再加到Memo2,問題出在我如果在Memo1上的字串數,也就是行數大約四萬多筆,將它用Memo2->Lines->Add("經過處理的字串")加到Memo2,發現如果我的系統Focus沒在那個Form上,也就是切換到其他的Application那個程式就會當掉,請問一下各位有誰有這樣的經驗,可否賜教?typenew:改用ListBox試試! Andy Chang
------
Andy Chang |
綾小路
一般會員 發表:2 回覆:12 積分:7 註冊:2004-09-06 發送簡訊給我 |
應該是你的資料量太大了..四萬多筆..光是捲Memo的捲軸就慢的不像話吧
建議你把資料存在記憶體中
改用 TListBox 之類的
但是..不是叫你把資料全放進 ListBox 裡
而是用對映框的方式
只把會秀在畫面的資料放進 ListBox
因為你的螢幕再大也不可能[同時]看到四萬筆吧
只有當使用者去點捲軸時..才再去搬要秀出來的東西
例如:
記憶體放了四萬筆,但是同一個時間只會看到20筆,再做個捲軸
本來看到第 1~20 行的東西,使用者按了捲軸的下捲後
再搬新的 2~21 行東西進去 ListBox 蓋掉原本的 1~21 行
這樣你的 VCL 元件最多就只須要處理 20 行的資料
至於你的[處理]..都全在記憶體裡處理
請不要把可視的 VCL 元件當成記憶體用,它只是讓人類看而已,
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
引言: 小弟在Form上用了兩個Memo元件,要求是將第一個Memo1上字串一筆一筆經過某些處理再加到Memo2,問題出在我如果在Memo1上的字串數,也就是行數大約四萬多筆,將它用Memo2->Lines->Add("經過處理的字串")加到Memo2,發現如果我的系統Focus沒在那個Form上,也就是切換到其他的Application那個程式就會當掉,請問一下各位有誰有這樣的經驗,可否賜教?typenew:重新看一下你的問題,Focus沒在那個Form上,也就是切換到其他的Application那個程式就會當掉。 我處理這類要整理的問題,一是等它處理完畢。另一是交給多執行緒處理。 如我寫一個接收交換機的程式,一個多執行緒只處理接收RS232進來的資料。 所有運算我是於另一執行緒處理,因為要螢幕顯示所以我也是放置於Memo上, 使用者執行其他程式沒有問題。 提供參考! Andy Chang
------
Andy Chang |
typenew
一般會員 發表:8 回覆:17 積分:5 註冊:2004-03-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |