2009年1月17日 星期六

BCB note - Char & AnsiString Transformation

As title!
In string operation, we usually transform char to AnsiString data type for BCB objects such as Edit, StringGrid, Memo and Label etc. Besides, AnsiString transform to char data type is also used for traditional file read/write. The codes could be written below (Success testing in BCB):

// AnsiString To Char
AnsiString as = "test";
char *chr;
chr = as.c_str();

// Char To AnsiString
char *chr="test";
AnsiString as;
as = StrPas(chr);

2008年12月24日 星期三

爺爺辭世

2008/12/19星期五下午,一如往常前往實驗室工作,正當要"出手腳"(大哥用語)時,電話響了...
"子誠,阿公病危了,現在要送回家,你趕快跟公司請假,用最快速度回高雄..." 電話那頭是媽媽急促的聲音。稍稍收拾簡單行李後,我和四姑相約在高鐵碰面一起回去,雖然不是臨時的惡耗,大家也都有心理準備,但在高鐵上的我仍有些許感嘆,還來不及回想許多小時候和阿公互動的點滴,就已經到高雄了,我們轉搭捷運回老家。

他老人家今年81歲,算是喜喪。原本100多公斤,臉超有福相的他,在醫院躺了將近三年後,四肢萎縮,牙齒也都掉光造成面頰凹陷,需要靠呼吸器及人工餵食牛奶才能維生,雖然阿公不能言語,但痛苦和不舒服可想而知。如今,他選擇一個好日子離開大家,相當貼心且為我們這些晚輩著想,家中的客廳酒櫃整修剛好結束,週末期間放假...等,爸媽和姑姑們討論後,各日子及細節都一一決定下來了。

今天下午再次回高雄,週日就是告別式,阿公...希望你在天上能很好,保佑你的子孫身體健康,事事順心!!

2008年12月15日 星期一

劉子誠拼圖

呵呵呵...來玩一下拼圖吧!!你也可以自己做喔~

請參考重灌狂人

聖誕節到囉~~應景的"下雪特效"

叮叮噹~叮叮噹~
聖誕節到囉,為了要應景,在部落格中加入了這個"下雪特效"!
嗚.....有冷到.....

參考電腦玩物

2008年12月10日 星期三

在blogger中進行漂亮的 Source Code 排版

寫程式的過程中常會遇到瓶頸,當不想翻厚重的工具書時,只好拜託Google大神來幫忙解決問題!!找著找著,偶而會連結到一些部落格去,可以看到許多佛心來的大大們將程式碼水水地排版或做Highlight,以方便進行教學或說明。

介紹這個網站 Advanced Syntax Highlighting(ASH) 可美化你的 source code,感謝這位大大提供參考。底下就是測試的結果 :

  1. // ------------------ ---------------------------------------------------
  2. // 目的: 求一個數列中的平均值
  3. // src: 數列
  4. // src_size: 數列大小
  5. // ----------------------------------------------------------------------
  6. float andy_Average(float *src, int src_size)
  7. {
  8. float avg = 0;
  9. float sum = 0;
  10. for(int i=0; i
  11. {
  12. sum = sum + src[i];
  13. }
  14. avg = sum / (1.0*src_size);

  15. return avg;
  16. }

[心得]
程式碼前面多加上了行號,關鍵字或常數也以不同顏色標示,但註解的中文部份...飛天了!!所以還要再看看有沒有其他方式來排版。

2008年12月9日 星期二

2008年12月5日 星期五

BCB 執行檔啟動順序

BCB是一個事件驅動的視窗程式,習慣撰寫 VC的朋友們剛入門時,常會找不到"人"在哪(Main啦)??程式到底從何開始執行?? 今兒個就用Debug來簡單說一下程式執行的順序。

建立一個新的 BCB專案後,儲存所有檔案(預設命名)到你指定的資料夾後,開啟 Project1.cpp並在"WINAPI WinMain"設一個 debug point,用 F7去 Trace程式,就能發現程式就是從這裡開始的!!首先 Application->CreateForm() 會去執行 Form的建構子,接著再做 FormCreate,最後以 Application->Run()去執行 FormShow。

由以上可以知道,我們習慣把一些 initiation放在 FormCreate中,即每當程式啟動時都能去做一些參數初值設定,外部硬體初始化等動作。執行順序最後整理如下:
1. TForm1::TForm1
2. TForm1::FormCreate
3. TForm1::FormShow

來看一下實際測試錄影檔吧!!
(桌面錄影軟體: Freez Screen Video Capture)