全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1119
推到 Plurk!
推到 Facebook!

請問SelectClipRgn ,如何移除之前選取的範圍

答題得分者是:Justmade
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-07 11:22:13 IP:203.204.xxx.xxx 未訂閱
我查閱delphi的help,cancas.clipRect中有個範例如下 要取消之前所設定的範圍,只要填入nil就行, 可是為什麼我comile不會過呢 錯誤訊息:hrgn與pointer型態不符  
 
procedure Form1.Button1Click(Sender: TObject);
var        MyRgn: HRGN ;    begin        MyRgn := CreateRectRgn(100,100,200,200);
    SelectClipRgn(Image1.Canvas.Handle,MyRgn);
    Image1.Canvas.Brush.Color := clRed;
    Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
    Image1.Invalidate;
    SelectClipRgn(Image1.Canvas.Handle,nil);//這裏填nil,會有錯,不解??
    DeleteObject(MyRgn);    end;    
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-07 11:39:56 IP:61.10.xxx.xxx 未訂閱
SelectClipRgn(Image1.Canvas.Handle,0); 即可。 原因是 hrgn 在 Delphi 定義是是直接定成 longword 而不是定成 pointer,所以雖然 nil 即是 0 但 complier 卻查出兩種的宣告不同而不給通過。
系統時間:2024-04-27 22:44:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!