操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    觸摸屏中文無法顯示是一個比較常見的問題,一般是因為系統中沒有支持的字庫導致的,需要我們手動導入下字符庫。以前在威倫和西門子觸摸屏 wincc中都有遇到過。

    下面以MP277 10" Key的觸摸屏為例子說下如何手動導入字符庫,以及引起這種無法顯示的原因。

    軟件版本:Wincc Flexible 2008 SP5

    問題:中文宋體無法正常顯示,顯示為方框



    分析


    Wincc Flexible在組態的時候可以設置可選最多四種字體,兩種是默認的,兩種是可以自定義的。我們可以在設備設置>語言和字體 中看到所有可用的字體。

    固定的字符集是指觸摸屏中固定可選的字體,默認是兩種。西語兩種可選的字體是Tahoma和Courier New,中文是宋體,不可修改。觸摸屏在運行時默認使用的字體。


    已組態的字體集是指開發者可以添加的字體,最多可以另外添加兩種。這些新添加的字體會在下載觸摸屏程序時下載到觸摸屏中。


    ?這里就有個問題,既然默認的字體是宋體,為什么觸摸屏上還是會無法顯示呢?

    解決方案:手動導入宋體到觸摸屏中

    既然無法正常的顯示,我們就需要把電腦中的宋體字符庫拷貝到觸摸屏中。

    1??從電腦中拷貝字符庫simsun.ttc


    系統中的字符庫的路徑在??C:\Windows\Fonts中,拷貝宋體字符庫文件到U盤或者SD卡中


    2??檢查Windows CE系統中存儲空間分配的大小


    由于宋體字符庫的大小為17.3MB,需要檢查下WinCE系統中存儲區分配的大小是否足夠,如果存儲空間不夠在拷貝的時候會出現彈窗提示。

    這時我們需要調整下存儲空間的大小。在?System>Memory?中滑塊往右滑動增加存儲區的大小。

    將字符文件simsun.ttc?拷貝到觸摸屏的?\Windows\Fonts?路徑下


    3??重點:永久保存字體庫

    將字符拷貝到觸摸屏的Fonts文件夾下后,運行觸摸屏程序,字體就能正常顯示了,但是重啟后發現Fonts文件夾下的宋體字庫沒有了,界面也不能正常顯示。由于\Windows\Fonts ?還是屬于臨時存儲區,還需要在OP菜單中將字符文件永久保存。


    這個永久保存文件的操作在我另一篇第三方VNC遠程連接觸摸屏中也有介紹到。


    另外:


    本來問題已經解決了,有個問題一直比較奇怪是我們上面提到的組態時中文默認是宋體,但是為什么還是沒有正常顯示呢?以前是正常顯示的。

    難道觸摸屏里面沒有存有宋體還是丟了呢?

    我們在Fonts中沒有發現任何的字符庫文件,WinCE中的字符庫文件存儲在什么地方?

    打電話給西門子咨詢下,得到的回復原來這是組態軟件Wincc Flexible 2008 SP5的一個Bug,該問題已經在WinCCflexible2008_SP5_Upd1中解決了。查了下軟件的改進記錄中有下面這一項。


    因此現在就有兩種方法可以解決中文字符無法顯示的問題了

    1. 手動方式(可以了解自動下載時所做的一些工作)
    2. 更新最新的組態軟件(目前最新版本是Wincc Flexible 2008 SP5 Upd2),自動下載字符庫到觸摸屏系統中。

    CSDN移動將持續為您優選移動開發的精華內容,共同探討移動開發的技術熱點話題,涵蓋移動應用、開發工具、移動游戲及引擎、智能硬件、物聯網等方方面面。如果您想投稿、參與內容翻譯工作,或尋求近匠報道,請發送郵件至tangxy#csdn.net(請把#改成@)。

    本文出自:owensd.io,譯文出自:SwiftGG

    最近Swift的熱點都圍繞在協議上,他們覺得任何東西都應該是協議。理論上這挺好,但是事實上,這種觀點會產生一些副作用。

    我在代碼中使用協議時,總是牢記下面兩條規則:

    1. 不要把協議當成類型

    我看到的(和我一開始寫的)許多方法都是在繼承關系里把協議當成一個基類。我不認為這是協議的正確用法,這種設計模式仍然停留在“面向對象”的思維方式上。

    換句話說,假如你的協議只在繼承關系里有意義,那就應該捫心自問是否真的有必要使用協議。我不贊同這種說法:“我的類型是結構體,所以我需要用協議來代替。”如果真的需要這樣,那就重構它,把它變得更通用。

    進一步的驗證可見:http://swiftdoc.org/swift-2/。需要關注所有那些協議(不以 _ 開頭的協議)嗎?所有的協議都能適用不同的類型,不管是不是類型繼承。

    2. 不要把協議泛型化,除非你必須這么做!

    這并不是一個小問題,一旦你把協議泛型化,就無法再使用包含不同協議實例的類型集合。我認為這是嚴重的設計缺陷。比如說,無論在哪里使用協議,協議中所有不受Self限制的功能都應該保證調用安全。

    這條規則同樣適用于遵守泛型協議的協議,比如Equatable,泛型會傳染。

    下面這行代碼就是典型的例子:

    protocol Foo : Equatable {}

    來個實際點的例子吧:

    我們想要對HTTP response建模,并且想要支持兩種不同的response類型:String和JSON。

    你可能會這樣寫:

    class HTTPResponse<ResponseType> {
        var response: ResponseType
        init(response: ResponseType) { self.response=response }
    }

    我認為這樣寫不好。一旦這樣寫,我們就人為地限制了使用這個類型的能力;比如,這不能在復雜情況下的集合里使用。現在,為什么我想要在集合里使用不同的ResponseType?假設,我想要構建一個 response/request的測試工具。返回response的集合里需要有我支持的類型:String和JSON。

    使用AnyObject是個不錯的做法。雖然可行,但是真的很操蛋。

    另一種方法是使用協議。然而,除了構建ResponseType協議之外,讓我們想想真正想要什么。我真正關心的是,HTTPResponse接收到的ResponseType都能表示成String。

    揣著這樣的想法,我寫出這樣的代碼:

    protocol StringRepresentable {
        var stringRepresentation: String { get }
    }
    class HTTPResponse {
        var response: StringRepresentable
        init(response: StringRepresentable) { self.response=response }
    }

    對我而言,這為API使用者提供了極大的方便,也維持了類型的明確性。當然,這樣做是有弊端的。假如你真的需要為response使用特定的類型,那么就需要進行類型轉換。

    class JSONResponse : StringRepresentable {
        var stringRepresentation: String="{}"
    }
    let http=HTTPResponse(response: JSONResponse)
    let json=http.response as? JSONResponse
    這個方法明顯更好。調用者知道可能的返回類型或返回值。這明顯與遍歷整個集合取出返回值是不同的,因為,代碼的使用者可能使用的是其他的返回類型,比如 XMLResponse ,而我們的代碼不可能知道這個。

    最好是這樣寫:

    class HTTPResponse<ResponseType : StringRepresentable> {
        var response: ResponseType
    }
    <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; white-space: normal; background-color: initial;">let responses=[json, string] &nbsp;//responses變量是以HTTPResponse為元素的數組,元素中的ResponseType是未指定的。</span>

    如果要用集合,你還是需要強制轉換response的類型,不過現在你可以直接用JSON實例來驗證類型。

    反正我是每次都用[HTTPResponse]類型的集合,而不是[AnyObject]。

    預告:2015中國移動開發者大會(MDCC 2015)將于10月15-16日在北京新云南皇冠假日酒店召開。大會特設五大技術專場:平臺與技術iOS、平臺與技術Android、產品與設計、游戲開發、企業移動化。此外,大會更是首次舉辦國內極具權威影響力的IoT技術峰會,特設硬件開發技術與虛擬現實兩大專場。大會將聚集國內最具實力的產品技術團隊,與開發者一道進行最前沿的探討與交流。

    第一時間掌握最新移動開發相關信息和技術,請關注mobilehub公眾微信號(ID: mobilehub)。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有