• 17

中文RSS新聞閱讀程式(上)

大大 您客氣了 我非常贊成你對開放原碼的想法與美意
很久以前我就跟大大有一樣的想法 我也有把我寫的程式的所有原碼開放出來

我很希望能夠修改你的原碼 不過 我對 VB 實在一翹不通 所以 實在看不懂
我只會 C/C++/Java/C# 等 C字輩的語言
因為 我是隨意建個專案測試的所以
計算行距的部份 我把程式碼貼出來給您 我是使用 .Net CF 2.0 與 C#
.Net CF 1.0 我不知道是否可以正常的動作
不知道大大所謂的計算不出來 是指 產生 exception 還是計算結果錯誤?
以下是我寫的程式碼 簡略的説明

public partial class Demo: UserControl
{

建構子 與 InitializeComponent 略

public void DemoMeasureString()
{
System.Drawing.Graphics graphics = this.CreateGraphics();
string measureString = "我要計算寬度的字串";

// 依據 ui_text 的字型來計算寬度跟高度
SizeF size = graphics.MeasureString(measureString, ui_text.Font);

// size 是計算文字長寬的結果 這個資訊 配合 ui_text.Width
// 足以製作 VScrollBar 的捲動
}

private System.Windows.Forms.Label ui_text; // 在控制項中的子控制項

}


附帶一題 ui_text.CreateGraphics(); 會丟出Not support exception
可能原因是 .net CF 2.0 可能沒有實做 或是 Label 複寫了這個函式 不准許用 System.Drawing.Graphics (DC的wrap 物件) 控制繪圖

類似這樣的用法 我有實做在我的程式
詳情請看 PocketSynd.ChannelPanel.ContentRefresh() 這個函式內部的實做
希望這些資訊 對 Jimmy_Sung 大 有幫助呢


以下是我程式相關的論壇內容 麻煩請大大參考了
http://www.mobile01.com/topicdetail.php?f=129&t=136396&last=989700

這是我的網站 有機會可以互相交流 http://design-studio.lookin.at/
Nomad Libra wrote:
大大 您客氣了 我非...(恕刪)


哇, 您寫的程式真是太棒了, 加分加分.

可惜是用C寫的, 不然說不定可以解決小弟一些VB.Net的疑問

讀取硬體按鍵的功能, 小弟先前在一些論譠看到高手提供的原始碼, 但是也都是用C寫的, 而且還有人說不建議用VB來實作此功能, 由於捲動功能開發遇到瓶頸, 因此也就沒有去玩按鍵了.

閱讀新聞的功能若不使用Text Box, 那麼還要自己處理換行和Scroll Bar的問題, 所以都沒有用改它, 而Text Box會自動換行, 例如自動拆成5行, 使用Measurestring我算不出它被拆成幾行, 假設Measurestring算出的文字寛度是500, 而Text Box寛度是100, 並不代表它會變成5行, 也許會變成6行(自動換行會斷整個字, 因此會多出一行出來).

在PC版中, 可以指定顯示的區域, 所以Measurestring會連換行都考慮進去. 小弟最後的結論是, 求個最佳化就好, 目前功力有限做不出的功能就留待日後再處理了.

有了好用的PDA軟體之後, PDA才能顯出它的價值, 希望能有更多的人加入開發PDA軟體的行列, 不為賣錢, 純為造福PDA使用者.

謝謝!
大大 您客氣了 我不是用C寫的啦 是用C# 所以 我所遇到的問題
或是我所使用的所有功能 您都可以在 VB .NET 上使用 的確 C 真的可以控制很多東西
不過 C 能做的 .NET 也可以去 CALL PDA 的 SDK 來達成 只是會比較綁手綁腳

您說的對 Text Box 很聰明的會把文字自動分行 而且 他還會讓英文字詞 不會分段的顯示
所以 要預測 Text Box 是否段行 要花點功夫 可能要拆解一下 裡面的文字來分析(如果是英文)

還有一個作法 就是 從頭到尾都不用 Text Box來寫 利用 GDI的方式自己繪製文字
這樣就可以自己決定段行了 不過 很辛苦

另外一個比較輕鬆的想法是 簡單的想法是 自己繼承 Text Box 然後把按鍵事件處理函式
註冊到 程式 Form 的按鍵event上 這樣 就一定可以接到訊息了
很抱歉的是 我也是第一次 用 .NET 寫 GUI 的程式 (以前我都是設計函式庫)
所以 很多寫程式的技巧 跟邏輯 我也還在摸索 如果有錯誤的建議 請大大您 包含了 感謝您
新增將新聞依RSS上的發佈時間排序, 而非原來的不排序.

增加了這個功能之後, 再增加新聞群組[今日最新報導], 您就可以隨時看到所有群組中的今日新聞(依發佈時間排序), 請注意它只會顯示您選擇的新聞群組, 而非所有群組.

如果新聞來源是"Internet", 那掃瞄所有群組會花費太多時間, 幾經思考之後, 如果新聞來源是"Internet", 則[今日最新報導]功能無效(保留現狀), 如果您認為有需要新聞來源為"Internet"時, 也要[今日最新報導]功能, 請留言給小弟, 小弟再研究研究.

可能有些人不喜歡這項新功能, 所以新的檔案是另一個連結, 舊版仍保留在原發文中.
給樓上的 Jimmy ...
你該不會是來自 HTC 吧 !? 若是, 能不能跟妳們家的機構說一下. 沒事把 PDA 做得這麼大一隻要做啥? 很難帶出門耶 ...
讚啦!
有排序後,日期時間,就不會跳來跳去,看起來怪怪的
再一次感謝
棒!!!!

真是棒....

我原本也想要自己寫一個的..

多謝!!

milli wrote:
讚啦!有排序後,日期...(恕刪)

既然有人對日期排序有興趣, 那小弟就把手上最新版本傳上來.

這一版中, PC版(JReaderMate)會記錄下載時間, PDA版在讀取今日新聞時, 會先依下載時間排序, 再依新聞公佈時間排序, 這樣最近下載的新聞就會一定放在最前面, 不像先前依新聞時間排序, 而新聞時間基本上又不太準....

另外發現聯合新聞網有些群組的時間不正確, 時間明明和台灣相同, 卻打上GMT三個字, 造成VB轉換後快了8小時, 新版中加了一個檢查, 如果新聞時間轉換成台灣時間後, 大於目前系統時間, 則會自動給它減8小時...沒辦法, 山不轉路轉嘛!

由於多記錄了一個時間, 資料結構變更, 可能會造成程式普遍性的錯誤, 我都是用JReaderMate存新聞, 再同步到PDA中使用, 這些功能應該都沒問題, 但使用PDA直接讀Internet新聞, 以及用PDA儲存新聞功能, 有跟著改寫, 但沒有測...有用這些功能的大大, 可能要稍微注意一點.

另外針對讀取網頁的功能, 其實是VB.Net的內建功能, 讀不到小弟也沒辦法, 只是嘗試改一些建構方法, 看起來"好像"狀況有變好一點, 各位比較一下吧!

由於資料結構變更, 請PC版和PDA同時更換新版本, 才不會發生錯誤喔

baddaddy wrote:
給樓上的 Jimmy ...
你該不會是來自 HTC 吧 !? 若是, 能不能跟妳們家的機構說一下. 沒事把 PDA 做得這麼大一隻要做啥? 很難帶出門耶 ...

HTC是啥? 不認識, 倒是bad大您的PDA若是不想要, 可以寄給小弟, 小弟在辦公室用, 不會帶出門...郵資小弟出啦, 夠意思吧! 呵呵!
全文檢索版(2/24 Update): 200602/mobile01-9a5607796a15288e3cdbc0843826d8e9.zip

---------- 2/24 Update ---------------------------------

PDA版新增[全文檢索]功能.

我都是用PDA在看新聞的, 有時想找某一條新聞, 遍尋不著就會很火大, 所以一咬牙就把PC版的蒐尋功能也給它搬到PDA來了, 測試一下, 速度是慢了點, 感覺還不錯用, 就把它post上來給大家用. 其實PC版也做了一些小修改, 可以的話大家可以PC&PDA一起Update.

打開程式後, 點選新聞區不放, 就會出現一個功能表, 那個[顯示設定]是預留給先前有位大大提到, 希望可以自行設定新聞顯示字型用的, 還沒做, 先不用管它.



選擇[全文檢索]之後, 出現檢索畫面, 請輸入您要蒐尋的字, 並按下[蒐尋]

如果縮小蒐尋範圍或是點選[只尋找新聞標題], 那麼蒐尋速度會快很多喔!



經過一段"歲月"之後, 您要的資訊就出來了.



可直接點選新聞, 去看內容.


---------- 2/25 Update ---------------------------------

終極全功能版(2/25 Update): 200602/mobile01-5a7a3094d05c7abbafb72f7d7dca64bb.zip

熬夜寫程式, 搞到眼睛都快睜不開, 終於把最終極的版本寫出來了, VB.Net2003真的很不好用, 廣告中可以宣稱的功能是有, 其它小地方就隨便應付, 只要不出問題就好, 寫起程式來痛苦指數很高, 例如這次想列舉出PDA所有己安裝的字型就抓不到, 還有本想讓使用者直接點取範例文字, 就進入顏色選單, 結果文字標簽點選時是不會產生事件的...

言歸正傳, 這次新增了顯示設定的功能 :

1. 看完新聞內容後, 視窗只是隱藏而不關閉, 這樣可以加快顯示速度, 及減少可能的記憶體殘存.
2. 先前因VB的問題, 顯示時並非程式原先設定的"新細明體", 現己改成內定細明體.
3. 顯示改成小弟"自認為"較好看的配色.
4. 使用者可任意修改新聞群組, 標題及內文的顯示顏色及字型大小.
5. 螢幕顯示會配合字體大小改變顯示位置.

請見下方的操作, 相信有使用過JReader的網友對其操作應不陌生, 就不多說明了.














  • 17
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 17)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?