2010年12月27日 星期一

My first QR-Code testing


這是使用QR Code產生器做的QR-Code
只要拿起能辨識QR-Code的行動裝置,對著此QR-Code拍一下,
就能轉成(解碼)對應的文字囉!

QR-Code產生器網址: http://www.calm9.com/labs/qrcode

2010年11月18日 星期四

多按鈕共用相同Click事件

小功能成就大系統...

介面設計最常使用的元件就是按鈕,
在BCB底下有多種不同功用的按鈕,Button, BitBtn, SpeedButton...等。

我們常常要撰寫當按下某個按鈕執行某個事件的功能,
BCB能方便地在設計者雙擊按鈕後,產生一個Click事件,
以便於撰寫對應的功能。

一個按鈕對應一個Click事件是很合理且直覺的作法,
若今天有10個按鈕則會有10個Click事件(廢話....),
但如果這10個Click事件底下所執行的動作很簡短,
並且有一定的相關性的時,如"計算機按下數字按鈕顯示於螢幕上"
則可以選擇更Smart且簡化程式的方式,如下說明:

1. 於Form上建立5個Button及1個Edit,如下圖所示


2. 分別為5個Button的Tag屬性設立從1到5
3. 雙擊btn1,在事件中寫入底下程式
  1. void __fastcall TFormMain::btn1Click(TObject *Sender)
  2. {
  3. TSpeedButton *tempBtn;
  4. tempBtn = (TSpeedButton *)Sender;
  5. switch(tempBtn->Tag)
  6. {
  7. case 1:
  8. // Tag 1 action
  9. edt_show->Text = tempBtn->Caption;
  10. break;

  11. case 2:
  12. // Tag 2 action
  13. edt_show->Text = tempBtn->Caption;
  14. break;

  15. case 3:
  16. // Tag 3 action
  17. edt_show->Text = tempBtn->Caption;
  18. break;

  19. case 4:
  20. // Tag 4 action
  21. edt_show->Text = tempBtn->Caption;
  22. break;

  23. case 5:
  24. // Tag 5 action
  25. edt_show->Text = tempBtn->Caption;
  26. break;

  27. default:
  28. break;
  29. }
  30. }
4. 最後把剩餘的Btn Click事件全部指到btn1Click
5. 完成,下班!!

2010年11月5日 星期五

成功運行Android模擬器


就在今天,就在今天....

依照著網路資訊:
http://nelsonchunglife.blogspot.com/2010/06/install-android-22.html(詳盡教學)
http://bbs.hiapk.com/thread-504737-1-1.html(SDK更新-元件下載)
http://www.docin.com/p-56500569.html(SDK更新-手動更新步驟)
總算在我的電腦上,讓Android模擬器順利跑了起來(這可不是網路上的圖喔~)

圖1. 預設的HelloWorld程式在模擬器上執行

圖2. 進入畫面

圖3. 基本工具軟體


開始了我Android的路....

工作2週年紀念日

今天雖然不是工作2週年紀念日.....(10/13才是XD)
但難得週五就來好好整理整理!

從年初開始,整個景氣似乎一飛沖天似的,
台灣及大陸訂單大量湧入,
尤其是大陸更是可怕,
訂單海一波未停一波又起,目前就在
接單發料->出廠前調機->大陸出差交機->回訪客服的循環中生活,
新產品的研發進度大幅落後,舊產品仍要繼續維持及改善...(有時候會厭滴...)

今年也體驗了到大陸出差的感受,由於是到客戶端交機,
所以從找當地飯店,交通接駁,行程規劃,
交機驗證通通自己來(休閒娛樂也要的啦!)
和User驗證時是最累的過程,但其他時候就是自己的時間啦!!

經過幾次的出差經驗,有以下幾點心得,
1. 產品功能和客戶需求的落差
談產品規格和報價都是買賣雙方的頭兒,他們不會Care到產品功能細節
和現場人員使用的
方式及需求,所以中間的落差常需要花很多時間溝通, 協調, 說服...
2. 出差好比作戰,一人戰好累,多人戰還能分擔(常會有數個操作員抓著你問東問西)
3. 碰到好的接洽窗口帶你上天堂,不好的窗口帶你下地獄(使用者是否能自行解決問題的能力!?)
4. 人際關係和喇賽功夫全派上用場,可以避免到一些尷尬(機器是人設計的,有bug很正常滴!?)
5. 要有鐵胃, 厚臉皮, 超人體力和200%挫折容忍力(上班時數比台灣短...但一分一秒都要集中精神)
6. 36計走為上策(適時地告知User,還要其他行程要跑,所以請盡量配合調機時間和初步驗證)
7. 陸續增加中....

希望明年能更順利,新產品趕緊問世!

2010年11月4日 星期四

GSP-功能新增(2010/11)

1. 基本統計數據及特徵標示
















-----------------------------------------------------
2. 多種Thresholding功能



















-----------------------------------------------------
3. Harr小波轉換














-----------------------------------------------------

4. Gaussion filter(包含產生濾波器係數及執行濾坡功能)



















-----------------------------------------------------

5. 濾波器係數新增及載入功能(通用的Convolution)

2010年6月29日 星期二

出差大陸各站地圖紀錄


第一次出差大陸,目前跑了幾個地方,把下榻的飯店紀錄一下(中途還有換幾個,就省略吧!)
第一站,莫泰168。
第二站,國際大酒店。
第三站,揚中賓館。

2010年4月30日 星期五

C++ Builder建立/使用 Lib筆記

今天來整理一下,如何在C++ Builder中建立及使用libary(靜態聯結函式庫)的筆記吧!

Q. 如何將已有的 .cpp及 .h製成 .lib?
1. 開啟C++ Builder
2. File/New/Other 選擇Libray 按OK
3. 此時會自動產生一個 Project1.bpf檔
4. 接著將要被打包的 .cpp透過 Add File to project加入到專案中 ( .h不用)
5. 將此專案儲存起來 (可依照功能/目的來命名,不一定要和 .cpp/.h同名)
6. Build此專案
7. 完成後,在目錄下會產生一個和專案同名的 .lib檔
8. 未來可將 .lib及 .h檔發佈出去

Q. 在C++ Builder開發環境下,如何使用 .lib及 .h檔?
1. 在拿到 .lib及 .h檔後,將這兩個檔案放到專案執行的目錄下或者,
.lib可放在Windows能搜尋到的目錄下即可,但 .h 一定要放在專案執行的目錄下
2. 透過Add File to project將 .lib加入到專案中 ( .h不用)
3. 在程式開頭處加入 #include "xxx.h"
4. 完成

2010年4月29日 星期四

GSP-ICON設計

一個"好"的軟體應具備下列幾項優點
  1. 友善的使用者操作介面
  2. 優秀的計算效能
再來就是商品化啦!!在將產品商品化的過程中,
其中我覺得ICON設計是相當重要的一個環節,
它可以讓使用者一眼就認出這是什麼公司的產品,
進而聯想到其他的相關細節。
底下的截圖是我為GSP設計的icon,不是很專業,再慢慢修囉~

2010年4月28日 星期三

GSP-新增功能

Gerneral Signal Process 新增功能:

1. X/Y軸訊號反轉
2. Offset
3. Amplify
4. Undo/Redo(可記錄100個操作)

2010年2月14日 星期日

虎你旺~~虎年旺旺旺!!

一段時間沒來update囉~~
這兩三個月真是有累到 , 總算有個年假能好好休息一下.
但今年的過年經驗真是永生難忘喔....

小年夜在客戶那邊調機 , 搞到凌晨三點 , 除夕早上還殺過去final tune ,
新版系統正式上線 , 希望能順順利利過好年 , 加油!!