2009年10月8日 星期四

HW1 : Painter

老實說我看完BCB大磚塊前面三章之後實在沒有什麼心得...
他把屬性列成一堆表格,重點是我不會用阿!!

好吧
我只好憑著記憶裡老師上課的程式碼寫程式了!!




我拉了Menu(選單),Label(標籤),Panel(...這要怎麼翻譯...)
還有PictureDialog,ColorDialog




還多了兩個按鈕
切換橡皮擦模式跟畫筆模式
這是參考磚塊上11-28章的寫法





我開始執行了
在執行幾次之後
我發現一個問題...





這錯誤訊息寫著:
Project Project1.exe raised exception class EInvalidGraphic with message
'Unknow picture file extension (.)'.
Process stopped.
Use step or Run to continue.

這是哪來的呢?

在"開啟圖片對話框"執行時
不要選擇任何圖片
直接按下取消鍵就會出現

可是我不知道為什麼會這樣...





然後Debug指著這一行:
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);


好怪
誰來幫我解答一下吧!!感謝!!










正常執行就像下面這兩張圖:


點選之後顯示Pixel的色彩值及座標



還有繪圖功能!!






至於繪圖功能
因為上次上課最後那段時間我聽得很模糊
所以就用磚塊上的程式碼(11-28)
我打得跟磚塊的差不多
只是做了點修改



在主要程式碼main.h裡private的地方,我用了幾個變數
int mode; //這是用來切換橡皮擦跟畫筆的開關
bool Mdown; //這是用來辨識滑鼠有沒有按下的開關
TPoint EraseP[4]; //橡皮擦大小:4 Pixels



還有一個地方有改
就是要自訂色彩


我已經在Menu上開了"色彩選擇對話框"了
接著就是要把指定的色彩傳達給畫筆
不然就只能畫出預設的黑色了


在Image1MouseMove裡面
先設定好滑鼠移動時要上色
再加一行
Image1->Canvas->Pen->Color=ColorDialog1->Color;
就可以指定你要的顏色了!!








我覺得阿
BCB看起來很簡單
拉出你要的按鈕
指定按鈕要做什麼事
可是想要指定他做事的時候
有時卻寫不出來
好像詞窮一樣...

沒有留言:

張貼留言