發表文章

HTC Sense3.0待機(鎖屏or關屏)模式下無法使用Toast提示訊息

圖片
最近在開發手機來電監聽的APP,有個需求就是要有電話打進來的時候,要跳出客製的來電訊息,等到我一切在模擬器上面測試都OK的時候,放到實體機器上面測試,馬上就破功,電話打進來的時候毫無反應,一開始我想說會不會是Android的版本關係,於是我就換了其它版本的模擬器,還是正常可以正常執行,但是我在這時候發現原來實機上面是會運作的,只是在待機模式下面程式都沒有反應。

解決Reflection找不到繼承其它類別之類別

圖片
前幾天說明了如何使用dynamic來取代Reflection的功能,寫完文章後自己又玩了一下,卻無意間發現另外的問題,如果要操作的類別與繼承的類別並不是在相同的dll的話會取不到類別,dynamic與 Reflection的結果都一樣, 在發生問題的當下以為是namespance寫錯的關係,不過反覆調整了幾次發現都不是,於是就陷入了混亂的思緒,這時候就證明了當你以呈現混亂的思緒還是離開當下的環境比較好,回到家洗完澡後就想到一個問題,會不會是子類別讀不到父親類別的參考(雖然我編譯時期有參考)但是編譯成dll檔後它們並不互相認識,於是我就很天才的把兩個dll放在同一目錄底下,然後很開心的一試,還是掛掉(理所當然的吧),再把父親類別跟子類別放在同一個專案下編譯就正常,當下覺得很奇怪。

NET4.0新特性 dynamic

圖片
以往我們如果有一個dll檔,如果要使用C#來呼叫,我們都會使用反射(Reflection)的方式來呼叫相關的Methods,我先前也有一篇文章有提到關於 Reflection的基本操方式 。 最近因為因緣巧合的情況之下發現了NET4.0所提供的新特性 dynamic ,根據MSDN的說法  dynamic 型別可讓它發生所在的作業略過編譯時期型別檢查 ,講白話文的意思就是dynamic可以讓C#語法有了類似VB的特性弱型別語言的特性,宣告的時候不需要知道型別,且編譯的過程中編譯器預設也不會對dynamic進行檢查。

動態Included JavaScript的問題

圖片
在寫元件的時候常常會需要Included一些JavaScript檔,最近遇到一個問題就是需要Included一個jQuery檔案,但是NET所提供的【Page.ClientScript.RegisterClientScriptInclude】會把檔案放在<form></form> 中間,這樣一來會有一些問題產生。 通常我們在寫JavaScript的時候,會習慣把JS寫在 <head><head>中間,如果頁面中有用到jQuery的話,必須要把jquery.x.x.js檔放在自己寫的JS上面,不然會發生找不到物件的情形產生。舉個例子來說,最近要寫一個在iframe載入完畢後要自動調整寬高,理論來說這麼簡單的語法,只需要透過JavaScript就可以輕易達成了( 之前的文章也有提到 ),但最近發現先前所提到的寫法在不同瀏覽器計算出來的高度有誤,或者無法正常運作的情況產生,經過多次測試後發現,其實使用jQuery就可以輕易的取得我們所需要的iframe的寬高(測試幾個瀏覽器IE7,IE9,Chrome,Firefox都正常),於是我就想說寫一個IFrame的元件來用。

VS2005 連接 TFS2010 無法正常連線解決辦法

圖片
這幾天因為環境的關係,不得已必須使用Visual Studio2005透過Internet來連線Team Foundation Server 2010,但是VS2005預設是沒有安裝Team Explorer,所以沒有辦法連線,網路上找了一下資訊,發現 程湘之間 有教人家如何安裝,我就大概說明要安裝哪些東西

GridView轉出Excel時出現System.OutOfMemoryException 的問題

這幾天在改善系統問題時出現了 System.OutOfMemoryException 的問題,由於這個錯誤訊息提示的關係,直覺是記憶體不足嗎?所以到了Server上執行該程式並監看記憶體使用狀況,似乎沒有很誇張,Google了一下,保哥有提到遇到此問題的解決辦法,按照保哥的方式調整發現,問題還在,所以就是程是本身的問題了。 

T-SQL使用遞迴的方式來查詢同一資料表

最近要調整公司原有系統機制的時候,由於資料架構的關係不得以必須使用到SQL來遞迴查詢一些資料,一開始我的想法本來是跟程式的觀念一下寫一個Function然後遞迴呼叫自己,但想來想去覺得這樣好像怪怪的,資料量大的時候怕會有效能問題,於是就上Google查了一下,果然有SQL本身就有提供類似遞迴的語法(SQL Server2005 + 的版本才支援)。

Windows Phone 7 取得GPS訊號

圖片
要取得GPS的訊號主要是透過 GeoCoordinateWatche 來取得,下面的範例是一個簡單的取得經緯度的語法。

Windows Phone 7 開發GoogleMap基礎說明

圖片
1. 要開發Bing Maps App前,必須先到官網註冊一組程式中必須使用到的Key才可以繼續進行下一個步驟。 Register Key  畫面如下:

Windows Server 2008 安裝 Windows Phone SDK 7.1

圖片
Windows Phone SDK 7.1正式釋出了,但是微軟的 官網 明確的說明該SDK支援的作業系統為Windows 7或Windows Vista。網路找一下答案,果然有人分享如何破解這個限制,先說明一下 kylin 分享的是線上安裝的調整方式,我試著用一樣的步驟來執行離線安裝檔的方式會失敗,但是只要把線上安裝的baseline.dat Copy到離線安裝檔那,就可以正常運作了。

C# WinForm使用新字型

圖片
前幾天突然有個問題,以前如果我們需要一個新的字型要使用,我們會將下載回來的字型檔安裝到字型裡面後才繼續使用,但是問題來了,如果我寫了一支程式然後那支程式裡面需要使用到非系統預設的新字型,那麼我們就必須要想辦法讓動態的載入或者安裝字型,因此我上網搜尋了一下整理出以下幾種方式可以進行。

Objective-C 字串相加方法

在C#中如果只要使用同一變數的字串相加只需要使用+=就可以達到我們想要的結果,可是Objectiv-C可就沒有簡單了,必須透過字串的Methods來完成,自己記一下免得下次又忘了,詳見以下語法。

讀寫app.conifg檔案

有時候我們在寫WinForm程式的時候,若沒資料庫而又必須儲存一些參數以方便後續使用的時候,有幾種方法。1. 自己寫文字檔或xml檔儲存,這個我就不在說明了。2. 利用app.conifg來進行資料存取,下面我就針對這項進行簡單的說明。 由於我要利用appSettings來進行存取,因此要存放的檔案必須為基本資料型態的格式,也就是如果你要存放的檔案有多筆、陣列、DataSet、DataTable(雖然可序列化)等等,皆不適用本範例。

WinForm程式實做多語系

//http://www.dotblogs.com.tw/yc421206/archive/2011/02/21/21482.aspx  //http://www.wretch.cc/blog/bigdstut/15822510 string language = this.Input_Language.SelectedValue.ToString(); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language); ResourceManager rm = new ResourceManager("PrimeEagle.Leeder.GPSViewer.Form_Setting", Assembly.GetExecutingAssembly()); this.Label_UTCTime.Text = rm.GetString("Label_UTCTime.Text"); this.Label_Heading.Text = rm.GetString("Label_Heading.Text"); this.Label_Rateofturn.Text = rm.GetString("Label_Rateofturn.Text"); this.Label_Speed.Text = rm.GetString("Label_Speed.Text"); this.GroupBox_Position.Text = rm.GetString("GroupBox_Position.Text"); this.Button_DefaultPosition.Text = rm.GetString("Button_DefaultPosition.Text");

iOS關閉螢幕小鍵盤

圖片
我們常常在設計UI畫面的時候,會希望User輸入完一個資料欄位後可以關閉小鍵盤(自動或被動皆可),iPhone並不像Android有一個回上一動作的按鈕,因此我們會希望讓User隨意點選一個地方就自動關閉螢幕小鍵盤。在實際操作的過程中,發現有兩個物件的使用方式有點不太相同,因此我在下面會針對這兩個物件進行說明。

GPS座標度分秒轉換

圖片
之前使用GPS接收器接收到的經緯度格式都是【度度.分分秒秒秒】,但是手機上卻不是這樣,手機上卻是直接發送出GPS的訊號卻是轉換過的地圖格式,這點害我吃了大虧,因此在這裡分享一下度分秒的轉換方式。 經緯度 → 度分秒(假設有個緯度是23.12345) 度數 : 整數的部分23 這個就是轉換後的度數(°) 分數 : 小數的部分0.12345 * 60 = 7.407 ,取整數的部分,因此 7(')就是轉換後的分數 秒數 : 分數計算後的小數部分,也就是0.407 * 60 = 24.42,因此24.42(")就是轉換後的秒數 因此23.12345轉換後就是23° 7' 24.42" 度分秒 → 經緯度(假設有個度數是23° 7' 24.42") 轉換公式 : x度 y分 z秒 = x + y/60 + z/3600 度 (23) + (7/60) + (24.42/3600) = 23 + 0.11666.... + 0.00678333.... = 23.123443....

GoogleMap 讀取kml檔

圖片
前一陣子網路上有一個網友寫信給我要我幫忙調整一個問題我才發現GoogleMap API本身有提供直接讀取kml檔的類別。原本我已為kml檔只能匯入GoogleEarth或者匯入Google地圖裡面,看來我不了解的是還真不少><,下面我就簡單的介紹一下GoogleMap所提供的API操作。 GoogleMap 本身有提供一個專門讀取kml檔的 KmlLayer物件,因此只要有一個正確的kml檔,就可以直接載入所需的資訊。

C#讀取DBF檔

圖片
最近有玩到一個比較陌生的資料庫,副檔名是.dbf檔,網路查一下是Visual FoxPro的資料庫格是,分享一下如何使用C#來讀取,使用C#讀取dbf檔其實一點也不難,查了一下文件大家都比較推薦使用OLE DB,首先需要下載安裝 Microsoft OLE DB Provider for Visual FoxPro 9.0 ,接下來就可以直接使用C#來操作OLE DB。 //Data Source 為資料庫資料夾的路徑 string strConnection = @"Provider=vfpoledb;Data Source=c:\;Collating Sequence=machine;"; OleDbConnection oleCon = new OleDbConnection(); oleCon.ConnectionString = strConnection; OleDbCommand oleCom = new OleDbCommand(); oleCom.Connection = oleCon; DataTable myTable = new DataTable(); //xxx.dbf為資料庫檔案名稱 string strSql = "select * from [xxxx.dbf]"; oleCom.CommandText = strSql; OleDbDataAdapter oleDap = new OleDbDataAdapter(); oleDap.SelectCommand = oleCom; oleDap.Fill(myTable); 操作畫面如下 本文附件 :  VFPOLEDBSetup.msi  : Visual FoxPro9.0 ReadDBF.rar : Sample Code (需要密碼請留言給我) bar.DBF : 測試資料庫

在Xcode中使用自己定義的viewController

圖片
我照著網路上的範例單純的拉一個viewController沒想到這一個簡單的動作竟然搞了我好久,在這裡我就先寫下來免得下次我用忘記。 1. 首先Create一個專案命名為HaicomViewer,如下圖所示原本Create出來的專案只有下圖紅框的基本檔案,這個也是一開始預設的視窗,為了方便程式管理,我調整了一下資料的分類,所以看起來可能會有些不同。

在新的執行緒(Thread)中執行 Toast訊息提示

在Android當中若要在新的執行緒當中使用TOAST都會出現以下的錯誤訊【java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()】。若要可以正常執行請參閱以下解決方式。

Android 2.3 使用Facebook API

圖片
這幾天為了寫一個在Android 手機上調用Facebook API ,沒想到一個看起來很簡單的動作,卻整整折磨我三天的時間。在這裡大概說明一下是什麼原因。 話說我寫了一個GoogleMap搭配Facebook打卡的程式,在模擬器的環境都跑的好好的,於是我就很興奮把程式裝到我的手機上面,結果出現了一個錯誤訊息。

C++寄信

圖片
本文我要記錄一下在C++中,使用 CHILKAT 所提供的函式來寄送電子郵件。 首先必須先到官網下載 C/C++ Libraries ,並且解壓縮下載的檔案,可以看到include、libs兩個資料夾,再來就是開啟我們建立好的Win32主控台專案,在本範例當中使用的Visual Studio 2010來操作。

Server2008 上安裝MySQL服務無法啟用

這幾天在VM新建一台2008的Server並安裝MySQL,但卻發生了服務無法啟動的問題,網路上的解法千奇百怪,說什麼移除,清掉註冊檔等等怪方法,可是那些解法似乎是發生在安裝完又移除在安裝才會發生的,我是第一次安裝,況且我嘗試了他們交的方法都無效,最後我發現了一件事。 安裝完MySQL後預設的路徑是在【C:\Program Files\MySQL\MySQL Server 5.5】底下,一開始我一有錯誤就開始調整這裡的my.ini,但是我發現似乎都不鳥我,就連錯誤的紀錄檔(data\Server.err)也都沒有產生,就開始覺得好像不太對。 Google了一下終於發現MySQL安裝完雖然會在預設路徑產生一堆.ini檔,但是真正執行的地方似乎是在【C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1】,於是調整了這裡的組態檔,Yes終於可以正常Work了。

Silverlight初探(四) - DataGrid資料繫結篇

圖片
前面一篇文章有大概說明如何使用WCF來傳遞資料,可是沒有明確的說明如何使用,這篇文章就是要說明如何真正的在Silverlight上運用WCF來繫結資料。 首先我們要先在Silverlight Page上拉一個DataGrid,在Grid當中放了兩個Template 【DataGridTemplateColumn.CellEditingTemplate】、【DataGridTemplateColumn.CellTemplate】,這兩個Template的目的是為了讓在編輯模式和顯示模式呈現不同的元件,其中單擊資料欄位會出現CheckBox的編輯模式。

Silverlight初探(三) - 使用WCF存取資料庫篇

圖片
本文要示範如何在Silverlight當中使用WCF,何謂WCF,簡單的說就是WebService,詳細說明請參閱本文下方連結,首先我先簡單的示範如何寫一個正常的WCF,我根據了Steven的心得筆記寫出了下面語法的WCF。