這次的程式作業好難~
光自己想根本寫不出來,無法下手......
幸好有學長的範例程式碼可以看......
不過有些地方還是不知道在幹嘛,
有些地方則是知道這段程式碼在做什麼事,
可是一些細節部份還是不甚清楚......
但是......就算有ㄌ學長的程式碼,
一開始還是不知道該怎樣改,
程式碼應該加在哪哩,
後來經過同學的解釋,
還有其他同學在部落格分享他們所遇到的問題以及解決過程,
才知道大概的方向,
再自己想點子......
看過別人的程式碼後,
知道該怎樣加字,
該怎樣加圖片,
接著就改學長的範例程式......
加字的問題比較不大,
可是在圖片的部份......
呵呵......當掉的次數似乎不少啊~
跳出很多次的警告畫面ㄚ~
另外因為一開始我的圖示 jpg 檔的 ,
可是卻一直不能跑......
最後我還自己把它改成 bmp 檔的才能跑,
後來今天早上問過同學後才知......
原來要顯示 jpg 檔要另外宣告......
難怪不行~~~
而且當程式可以跑後,
發現圖會一直呈現閃爍的狀態......
於是,翻ㄌ一下課本......
發現!!
課本有說~
"會出現畫面閃爍的情形,
此時只要將Form或Panel元件的DoubleBuffered屬性設為Ture,
即可避免發生閃爍現象。"
事不宜遲~
馬上就給它試ㄌ一下~
果然~問題解決ㄌ~
畫面不再出現閃爍的現象~
以下是我加的程式碼:
在 timer2 的地方宣告ㄌ int x,
在背景相減發現與原圖有相異便顯示白點的那部份,
執行 x++,
x為白點的數目,
if(x>5000)
{
Image2->Picture->LoadFromFile(ExtractFilePat(Application>ExeName+"pic\\41.bmp");
Label1->Caption="你吵到本大爺睡覺囉!!! ";
}
else
{
Image2->Picture->LoadFromFile(ExtractFilePat(Application>ExeName+"pic\\39.bmp");
Label1->Caption=" ";
}
以下為顯示結果:
(i)建立背景
(ii)偵測物體前
(iii)偵測到物體侵入
沒有留言:
張貼留言