2009年10月7日 星期三

HW01


C++ Builder

選了數位媒體慨論這門課之後,有想到底會教什麼?以為跟資料結構一樣用C++來寫程式,但讀了一下C++ Builder這本書,才知道C++ Builder對視窗設計的貢獻這麼大,因為它比C++更方便、簡單、快速,一年級就已經體會到C++是蠻困難的東西,更何況要用C++來寫視窗,那可能要高手才行呢!

在課堂上第一次碰到C++ Builder的感覺,有點像我以前學到的VB,老師教了一些指令和程式,都覺得還蠻容易上手,還有非常多樣的元件,要把全部的元件都弄清楚,可能要花不少時間,然後以下是我練習過程與心得。























原來這種事我們也可以容易的做到,我以前還覺得做這些視窗都超難的,結果只要拉一個OpenPictureDialog1就可以開圖了,真是方便。





找了一張圖之後,在Image1MouseMove裡打上:
lblX->Caption=AnsiString(X);
lblY->Caption=AnsiString(Y);
lblRed->Caption=AnsiString(GetRValue(Image1->Canvas->Pixels[X][Y]));
lblGreen->Caption=AnsiString(GetGValue(Image1->Canvas->Pixels[X][Y]));
lblBlue->Caption=AnsiString(GetBValue(Image1->Canvas->Pixels[X][Y]));}
前面兩行是游標到圖的任何一點,就顯現出該點的座標,於上圖中左下角兩格,AnsiString的用意好像是為了以防它有錯誤。
另外三行意思則是游標到圖的某點的RBG數值。
還有圖中下有個紅色的,那是因為我程式內打了,只要我左鍵點某點,那麼該點的顏色就要顯示出來,但是這個程式要打在Image1MouseDown裡的。
課堂上遇到了一個困難,就是左鍵可以有功能,那麼右鍵呢?
我想了很久還是寫不出來,結果老師show出這段程式:
if(Button==mbLeft)
Image1->Canvas->LineTo(X,Y);
if(Button==mbRight)
Image1->Canvas->Pixels[X][Y]=clRed;
如果按左鍵的話,他就會從(0,0)原點到你點的那點連成一條直線,然後右鍵是點一下會出現一個小紅點,另外那條直線還可以用Color1Click這個元件來變換顏色喔。
這次的練習雖然只是入門而已,但是就已經體驗到C++ Builder吸引人的地方,可能只用了這裡面一小部分的元件,也才幾樣而已,但是就讓我知道原來這些視窗設計也可以很容易的製作,讓我覺得這個比VB還好玩多了。

沒有留言:

張貼留言