線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:7265
推到 Plurk!
推到 Facebook!
[<<] [1] [2] [>>]

VCL-Memo

 
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-07 06:12:02 IP:61.216.xxx.xxx 未訂閱
我有幾個有關Memo的事情想問一下 情況:(1)我是一直不斷由8051 讀出data post 到memo 裏的.. 但是post 的方法若用 memo->text = memo->text readdata 這時要達到我的要求,也就是畫面的data 會一直增加.. 但是因為一直是整個畫面重貼的關係,所以畫面會一直閃動的很快 請問有沒有辦法可以解決這樣的問題,因為我在memo裏面好像沒找到 只增加後會字元的方法...例如說memo->text->add = readdata 就自動增加到原有的顯示字串後面 (2)我要如何保持,我的游漂一直定位在最新的data字串之後 還有就是 (3)data 超過一面,會出現卷軸,但是畫面還是一直停留在最上方 為什麼他不會直去跟著最新的data 走呢.. 這幾個問題,希望先進們能教導我..謝謝
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-07 09:38:18 IP:61.231.xxx.xxx 未訂閱
引言: 我有幾個有關Memo的事情想問一下 情況:(1)我是一直不斷由8051 讀出data post 到memo 裏的.. 但是post 的方法若用 memo->text = memo->text readdata 這時要達到我的要求,也就是畫面的data 會一直增加.. 但是因為一直是整個畫面重貼的關係,所以畫面會一直閃動的很快 請問有沒有辦法可以解決這樣的問題,因為我在memo裏面好像沒找到 只增加後會字元的方法...例如說memo->text->add = readdata 就自動增加到原有的顯示字串後面 (2)我要如何保持,我的游漂一直定位在最新的data字串之後 還有就是 (3)data 超過一面,會出現卷軸,但是畫面還是一直停留在最上方 為什麼他不會直去跟著最新的data 走呢.. 這幾個問題,希望先進們能教導我..謝謝
哈哈,最近正好在玩 TMemo ,而您的三個問題,其實只要使用 memo->Lines->Add(readdata); 就全部解決了。在 TMemo 中,所有的資料是放在 Lines 這個 TStrings 中,所以要加資料,就如上述那行程式。 另外使用 TMemo 在 Lines->Add() 時,還會自動移到最新的那一行,所以您要的第三個功能也有囉。
------
http://www.ViewMove.com
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-07 09:46:56 IP:211.22.xxx.xxx 未訂閱
(1) 可能你的8051讀值是滿快的, 造成TMemo一直在作RePaint的動作 如果用Memo1->Lines->Append(AnsiString)的方式, 是可以一次只加一整行 畫面就不會一直閃, 只有加的那行會閃 (2) 試試API int IndexY=SendMessage(Memo1->Handle, EM_LINEINDEX, y, 0); y: 行數, 第一行的話為0 這樣會傳回第y行的啟始SelStart值 如果加上Memo1->Lines->String[y].Length();然後給SelStart 游標就會定到最後 (3) 這個原因我還找不出來 WinXP/2000附的RichEdit, 只要游標定到那裡, 畫面不會捲到那裡 Win98/WinME 的就會捲到那裡 試試 SendMessage(Memo1->Handle, EM_SCROLLCARET, 0,0);
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-07 10:27:46 IP:203.204.xxx.xxx 未訂閱
引言: (3) 這個原因我還找不出來 WinXP/2000附的RichEdit, 只要游標定到那裡, 畫面不會捲到那裡 Win98/WinME 的就會捲到那裡 試試 SendMessage(Memo1->Handle, EM_SCROLLCARET, 0,0);
lcsboy兄: 你真是厲害,這個問題困擾我蠻久了,實做時確實可行,感謝您提供的方法。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-08-07 11:18:49 IP:211.23.xxx.xxx 未訂閱
賣安ㄋㄟ供... 不過我確實花了幾個星期在玩EM_XXXXX 有夠機車的, Mircosoft幹嘛要這樣設計呀..../_\
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-08-07 15:40:11 IP:61.218.xxx.xxx 未訂閱
引言: 賣安ㄋㄟ供... 不過我確實花了幾個星期在玩EM_XXXXX 有夠機車的, Mircosoft幹嘛要這樣設計呀..../_\
To Lcsboy: 您可不可以將您這幾個星期研究的 SendMessage( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )以及EM_XXXXX的瞭解,告訴大家怎麼運用,怎麼跟VCL搭配的原理!您研究了這麼久,想必心得滿滿的! 看您發表的一篇怎麼處理VCL的Message之終極必殺技 (全) 實在不過癮,還想多看幾篇呢!期待喔!.......可別打我喔! ________________________________________________________________________ 時間就是金錢---[ 發問前請先找找舊文章] 發表人 - axsoft 於 2002/08/07 15:41:21
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-08-07 16:25:17 IP:61.222.xxx.xxx 未訂閱
是很想呀, 之前還有點私心, 不過看到你和bruce0211的壯舉, 讓我覺得, 倒不 如把所有會的技巧教會大家, 這樣一定會有人想出其他的妙招, 我是這麼期待 著. 不過工作的關係, 現在一點一滴的慢慢敲, 想說弄好再po出來 如果想什麼就寫什麼的話, 怕太沒系統, 還被罵說沒寫什麼/_\ 好人難作, 我盡力而為, 以前玩VB但什麼都不能作, 現在有了BCB 還可以偷抄VC的code來用....哈....真是爽呀, 什麼都能作
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-08-07 16:53:21 IP:61.218.xxx.xxx 未訂閱
引言: 是很想呀, 之前還有點私心, 不過看到你和bruce0211的壯舉, 讓我覺得, 倒不 如把所有會的技巧教會大家, 這樣一定會有人想出其他的妙招, 我是這麼期待 著. 不過工作的關係, 現在一點一滴的慢慢敲, 想說弄好再po出來 如果想什麼就寫什麼的話, 怕太沒系統, 還被罵說沒寫什麼/_\ 好人難作, 我盡力而為, 以前玩VB但什麼都不能作, 現在有了BCB 還可以偷抄VC的code來用....哈....真是爽呀, 什麼都能作
其實每個人都有私心,但我從開始學Delphi 1.0及C Builder 1.0 起常會發現資訊來源的貧乏!我也曾跟站長提過我的想法---取之於網路回饋於網路 但也常看到很熱心的朋友將自己的研究公佈在網路上,對他們心生敬佩與感激! 常有一些好的文章經過時間一久,可能網站倒了或其他原因文章不見了,鑑於這個原因我都會把好的文章備份在我的MailBox(以前沒電子書軟體,只好這麼做,自己又懶得寫),對於前面的種種狀況,我也樂意把我的收集公佈給大家參考,另外我也 多了一個資源備份的地方不是嗎? 希望大家也能把自己瞭解的東西公佈出來,公佈的越多大家就學的越多! 最簡單的例子就是您看到我Post的 HOOK Windows Message一文後,您便有這一篇怎麼處理VCL的Message之終極必殺技 (全)專文出來(好像在Delphichat上看到您說的,說錯了別罵我!),如果大家反應的資料越來越多,相信能學的越多呢! 別怕人家說如何?有指教才有進步不是嗎?加油喔!......期待您的文章喔! 有點離題了!________________________________________________________________________ 時間就是金錢---[ 發問前請先找找舊文章] 發表人 - axsoft 於 2002/08/07 16:59:31 發表人 - axsoft 於 2002/08/07 17:02:24
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-08-07 17:36:39 IP:61.231.xxx.xxx 未訂閱
引言: (3) 這個原因我還找不出來 WinXP/2000附的RichEdit, 只要游標定到那裡, 畫面不會捲到那裡 Win98/WinME 的就會捲到那裡 試試 SendMessage(Memo1->Handle, EM_SCROLLCARET, 0,0);
我的系統是 Win2000,使用 Memo1->Lines->Add("some new string"); Memo1 會自動移到最後一行呀?! 如果您希望 TMemo 不要自動移動,可以在更新資料的前後加上: Memo1->Lines->BeginUpdate(); ... Memo1->Lines->Add("some new string"); // 更新資料 ... Memo1->Lines->EndUpdate(); 這時,在完成更新後, TMemo 就不會自動移到最後一行了,不過,這樣作的優點是在一次用 Add() 更新很多資料時,可以增加更新的速度,因為更新時都不 repaint 在 EndUpdate() 後才 repaint。
------
http://www.ViewMove.com
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-08-07 18:00:23 IP:61.231.xxx.xxx 未訂閱
//--------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Memo1->Lines->Add(IntToHex(Memo1->Lines->Count,4)   " 00000000");
}
//--------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  AnsiString as;
  for(int i = 0 ; i < 1000 ; i     )
    as.cat_printf("d 00000000000\n",i);
  Memo1->Text = Memo1->Text   as;
}
//--------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  Memo1->Lines->BeginUpdate();
  Button1Click(Sender);
  Memo1->Lines->EndUpdate();
}
//--------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  Button2Click(Sender);
  Memo1->SelStart=SendMessage(Memo1->Handle,EM_LINEINDEX,Memo1->Lines->Count-1,0);
  Memo1->SelLength=0;
}
//--------------------------------------------------------------------
以上的兩個按鈕 Button1 按下時使用 Add() Button2 按下時使用 Text = Text as; 而結果是只要是使用 Button2 的方法,不論目前 Caret 是在那個位置,一定就是回到開頭; 只要是使用 Button2 的方法,不論目前 Caret 是在那個位置,一定就是跳到最後一行。 原 turboted 的問題就出在於使用 Button2 的更新資料方式。 如果希望更新資料時,TMemo 不要亂動!!那就可以使用 Button3 的方法。 如果還是希望使用 Button2 的方法來更新資料,那可以改用 Button4 的方法,就可以在更新完資料後自動移到最後一行。
------
http://www.ViewMove.com
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-08-07 20:21:17 IP:210.85.xxx.xxx 未訂閱
只能用兩個字形容-> 感動 :~~~~~ 原來可以這樣用, 書上都沒有寫過(至少我買的都沒有寫) 看來! 不管OS是那一種, 至少我可以完全控制整個VCL的結果
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-08-07 21:00:09 IP:61.216.xxx.xxx 未訂閱
就如icsboy兄說的[感動]...我真的也很感動...呼.. 以前我也覺的,寫程式的人,都把自已寫的東西當成自己的機密 就算有時想放出來,也覺的,自已一個人的努力做不了什麼 來到這個地方,地一次發言,就讓我完全的投入了.. 很感謝大家的幫助,我明天到公司會實作看看的 因為家裏的電腦太慢,不想run bcb6 .. 目前我手頭上在做的東西有兩個,是我實驗用的 一個是像CD SPEED 99 的軟體,用ASPI.. 另一個是 CD-RW的Debug -Tool .. 有機會再和大家分享心得..^_^ 不過我在ASPI上遇到很多的難處,希望大家也能一起談論一個東東 必竟在WIN下的燒錄程式都是由他開始的喔
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-08-07 21:36:42 IP:192.168.xxx.xxx 未訂閱
看到各位無私的發表文章,站長也非常感動! 成立這個網站一開始是自己一個人在用的,存放一些自己寫的程式範例,以備日後查詢使用,後才才受朋友鼓勵,野人獻曝一番,想不到迴響還滿大的! 我一直覺得一個人的力量總是有限的,集合大眾的知識累積,力量才會強大,或許有人會抱持私心,只想看別人的成果,不想分享自己的經驗,但我相信人終究是感性的,慢慢地大家會了解,我們都是同舟共濟,台灣的軟體業有前途,我們這些軟體工作者也才會有前途的! 況且,Borland面對強大的MicroSoft對手,我們要為我們喜歡的工具Delphi/BCB做最後的保衛戰,讓使用這工具的設計師能夠很容易找到所要的資料,這個工具才會繼續發展下去,你我的工作機會也就會多一點,大家一起努力吧! 本站會永續經營下去的,只是頻寬不是很夠,希望大家不要對本站做無謂的資源浪費,希望本站能成為設計師一生的最愛! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2002-08-07 22:57:15 IP:163.31.xxx.xxx 未訂閱
請問dllee兄 as.cat_printf("d 00000000000\n",i);這是您自己寫的函式還是哪裡的API?小弟我沒看過?在這前幾個月我寫了一個1-Wire的e-prom讀寫程式,用Tmemo作為存取及顯示來源,曾經為了16進位轉ASCII就想破頭了,看到這個函式蠻好用的!可否請您解說一下! ________________________________________________________________________ 時間就是金錢---[ 發問前請先找找舊文章]
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#15 引用回覆 回覆 發表時間:2002-08-07 23:22:22 IP:210.85.xxx.xxx 未訂閱
偶都素這樣用的啦, 參考一下 BYTE Value=0xAE; String Str; Str.sprintf("Hex:%.2X ASCII:%c", Value, Value); ShowMessage(Str); 不知道這是不是你要的
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#16 引用回覆 回覆 發表時間:2002-08-08 01:09:05 IP:210.85.xxx.xxx 未訂閱
哈....試出一個賤招, 供各位參考 Memo1->Lines->BeginUpdate Memo1->Lines->EndUpdate 如果發現, 畫面還是有些微閃動的現象, 可以下法改進一點點唷 參考:怎麼處理VCL的Message之終極必殺技(全) 攔劫WM_PAINT 自己加一個Flag 在原來BeginUpdate的地方, 換成WM_PAINT是bypass, 都不作, 就return; 在原來EndUpdate的地方, WM_PAINT交還原來的WndProc. 如果不想作double buffer畫面處理的話, 這樣子會比較好一點
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#17 引用回覆 回覆 發表時間:2002-08-08 08:51:43 IP:61.218.xxx.xxx 未訂閱
引言: 哈....試出一個賤招, 供各位參考 Memo1->Lines->BeginUpdate Memo1->Lines->EndUpdate 如果發現, 畫面還是有些微閃動的現象, 可以下法改進一點點唷 參考:怎麼處理VCL的Message之終極必殺技(全) 攔劫WM_PAINT 自己加一個Flag 在原來BeginUpdate的地方, 換成WM_PAINT是bypass, 都不作, 就return; 在原來EndUpdate的地方, WM_PAINT交還原來的WndProc. 如果不想作double buffer畫面處理的話, 這樣子會比較好一點
嘿嘿!蠻好用的!我還不知道Sprintf可以這樣用耶!謝啦! ________________________________________________________________________ 時間就是金錢---[ 發問前請先找找舊文章] 發表人 - axsoft 於 2002/08/08 09:03:59
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#18 引用回覆 回覆 發表時間:2002-08-08 09:29:47 IP:203.204.xxx.xxx 未訂閱
引言:
引言: (3) 這個原因我還找不出來 WinXP/2000附的RichEdit, 只要游標定到那裡, 畫面不會捲到那裡 Win98/WinME 的就會捲到那裡 試試 SendMessage(Memo1->Handle, EM_SCROLLCARET, 0,0);
我的系統是 Win2000,使用 Memo1->Lines->Add("some new string"); Memo1 會自動移到最後一行呀?!
dllee兄: 我指的是用SelStart時,在Win2000不會Scroll到該地方,加上lcsboy兄的方法就可以了,這個是用在RichEdit的搜尋功能上。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#19 引用回覆 回覆 發表時間:2002-08-08 10:01:39 IP:61.231.xxx.xxx 未訂閱
引言: dllee兄: 我指的是用SelStart時,在Win2000不會Scroll到該地方,加上lcsboy兄的方法就可以了,這個是用在RichEdit的搜尋功能上。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
有時,只有指令 SelStart 是無效的喔! 您有注意到我的那個 Button4 的按鈕中還有 SelLength=0 這一行可不是沒用的喔,如果把它去除,而正好之前都沒有對 SelLength 作過作何設定,那 TMemo 就有可能不動! 您的情況可能只是沒有設 SelLenght 而已。
------
http://www.ViewMove.com
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#20 引用回覆 回覆 發表時間:2002-08-08 10:05:21 IP:61.222.xxx.xxx 未訂閱
MircoSoft老是對程式設計員放話:你們是不需要為新的OS作程式作任何的修正 的, 因為呀, 新的OS都是相容於舊的OS 打從我玩TRichEdit, 就覺得這句話是屁話, 不然我也不用花那麼多時間在玩 API修正不同OS不同機台下的靈異現象 /_\
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#21 引用回覆 回覆 發表時間:2002-08-08 13:48:59 IP:203.204.xxx.xxx 未訂閱
引言: 有時,只有指令 SelStart 是無效的喔! 您有注意到我的那個 Button4 的按鈕中還有 SelLength=0 這一行可不是沒用的喔,如果把它去除,而正好之前都沒有對 SelLength 作過作何設定,那 TMemo 就有可能不動! 您的情況可能只是沒有設 SelLenght 而已。
我有設SelLength,但不是設0而是搜尋字串的長度,使搜尋到的字有反白的效果,在Win98可以自動Scroll沒問題,在Win2000就是不行,加上lcsboy兄的方法就可以了。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#22 引用回覆 回覆 發表時間:2002-08-08 14:11:29 IP:61.222.xxx.xxx 未訂閱
這跟我之前所說的是一樣的 Win9x系列: 在FindText後, 超過一頁後, 只要用SelStart=?? 會作自動捲動的動作 Win2K/WinXP: 在FindText後, 超過一頁後, 不管用SelStart=??, 再設SelLength, 或是 再加Update(), 加RePaint(), 或加Invalidate(), 一樣, 是沒有人會理你的 , 不知道Root cause, 所以我才找出這個強迫畫面捲到游標處的方法 不過...都會把畫面停在最上一行, 或最下一行, 跟我一樣不爽的人 就在後面再加捲動N行的功能. 這樣就很棒啦
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#23 引用回覆 回覆 發表時間:2002-08-09 00:18:40 IP:61.216.xxx.xxx 未訂閱
今天上班Try 了一下大家的方法,是解決了問題 不過,我想,有一點我忘了和大家說的 那就是,我在使用Timer 的千分之一秒時 由8051 get data 到Memo 裏,是要連串的 例如說 123456498435135468435431351654654564321651321 654654654641651648643135164564654654646465455 要滿了才會換行,而不是使用memo->line->add 這樣一來,就會變成 56464654 56498464654 5465 7984649 不過還是很感謝大家的方法,^_^ 目前有空時會整理一下手上的data 希望有機會能和大家分享
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#24 引用回覆 回覆 發表時間:2002-08-09 09:47:28 IP:61.222.xxx.xxx 未訂閱
這樣子的話, 你倒不如用原來Memo1->Text = "字串"; 的方式, 只是這個前後加Memo1->Lines->BeginUpdate() Memo1->Lines->EndUpdate()的方式. 或是用我攔劫WM_PAINT的方式, 效果應該會滿意一些些
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#25 引用回覆 回覆 發表時間:2002-08-10 00:35:11 IP:61.216.xxx.xxx 未訂閱
使用Memo->Text =字串的話 有一個最要的問題就是,他是每次都重新貼上整個Memo->Text內容 而且我讀的東西,資料量很大,我用 1/1000 sec 來讀 面畫上都會有一堆的字,
bruce0211
版主


發表:157
回覆:668
積分:279
註冊:2002-06-13

發送簡訊給我
#26 引用回覆 回覆 發表時間:2002-08-10 18:24:56 IP:210.208.xxx.xxx 未訂閱
各位長官: 你們要不要把以上的資料整理一下 丟到 VCL How To 中阿 ? (眼神飄向 icsboy ...) 小心!!匪諜就在你身邊... 發表人 - bruce0211 於 2002/08/10 18:26:02
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#27 引用回覆 回覆 發表時間:2002-08-10 19:04:40 IP:210.85.xxx.xxx 未訂閱
這就是我傷腦 的地方... 認養了RichEdit 但不是一時可以完成的 :~~~~~~~ 發表人 - lcsboy 於 2002/08/12 16:26:01
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#28 引用回覆 回覆 發表時間:2002-08-12 10:22:43 IP:210.71.xxx.xxx 未訂閱
果真冒險愈來愈深入了 由原來的 (1)memo->text->add 會使整個畫面重貼 還有游漂無法到行尾 2313123132245621313 2132132132132132132 3213213213213213213 到後來的 (2)memo->text->add畫面會斷行 1234536435 15355 456456456456 45 46664578 到現在 (3)竟然要使讀出來的data format 變成 12312312 12312312 12312312 12312312 56756778 78976545 45468784 56487644 8 bit 成一組四組後再換行..哇咧.. 可惡的vcl...不給我char,不給我string 只給我line和test 要我怎麼做嘛..可惡 一個頭兩個大..我現在的想法是 8051->buffer1 buffer1(集合到八個bit再投過去)->buffer2 buffer2->memo->text 不過這樣子的話 ..test 的老問題還是會存在.. 不管如何,我先把8bit format 的問題給解決
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#29 引用回覆 回覆 發表時間:2002-08-13 10:19:01 IP:61.231.xxx.xxx 未訂閱
您現在的架構就對了! 以電控程式來說,不可能將外部模組(8051)的資料直接秀給使用者看,因為在真實的狀況會有斷訊或是雜訊的問題,通常是用一個較大的 buffer 來存外部模組傳回的資料,主程式在定時或不定時去那個 buffer 查是否已完成一次的通訊,若是才將資料轉成使用者看的格式。    沒空更新的網頁...
http://coolsite.to/dllee C及指標教學資料
http://coolsite.to/ushells 介紹 Shells
------
http://www.ViewMove.com
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#30 引用回覆 回覆 發表時間:2002-08-13 10:34:48 IP:210.71.xxx.xxx 未訂閱
To dllee兄 基本上我做這個程式,並不是給user看的,是我自已寫的算debug-tool 我try 了一下,就算我寫了read 8 bit data 之後 我還是沒有辦法貼成 11111111 22222222 33333333 44444444 這樣的格式 因為在[我認知的memo和richedit]裏...就只有line->add和text 我無法利用這些完成我想要達成的工作
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#31 引用回覆 回覆 發表時間:2002-08-13 13:21:00 IP:203.65.xxx.xxx 未訂閱
發表小小的看法 比如說你要秀DWORD, 4Byte資料, 且轉成16進制, 又轉大寫, 可一次完成 DWORD MyReg; String Str; Str.sprintf("%.8X ", MyReg); 以此技巧, 可以像傳統字串一樣定出要輸出的格式 優點是--->用AnsiString, 可以相加字串 再來, 弄好你說的8個字元輸出後 Memo1->Text =Str; 之後, 看你要秀幾次就加幾次, 想斷行時 Memo1->Text ='\n'; 這樣就可以秀出 11111111 22222222 33333333 44444444 55555555 不知有沒有達到你想要的?
[<<] [1] [2] [>>]
系統時間:2024-04-24 2:38:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!