線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1076
推到 Plurk!
推到 Facebook!

請問如何在 Timage 或可以畫圖的元件上 反白一段區域????

尚未結案
eric888
一般會員


發表:9
回覆:3
積分:2
註冊:2004-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-03 19:02:47 IP:220.130.xxx.xxx 未訂閱
在 Timage 或可以畫圖的元件上用Mouse 選擇並反白一段區域,類似編輯文字時反白?????
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-03 23:20:06 IP:218.19.xxx.xxx 未訂閱
eric888 您好:    我寫了一段範例,處理對象是 Image1,繪製觸發時機是在 Image1 上面按下滑鼠左鍵,繪製區域隨滑鼠的移動(持續按住滑鼠左鍵)而變更,放開滑鼠左鍵時結束繪製,您看看適不適用?
TPoint BeginPos;        // 按下滑鼠左鍵後的起始座標
TPoint EndPos;                // 移動滑鼠時的座標
bool DragFlag=false;        // 是否按下滑鼠鍵拖曳的檢查旗號    void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    if(Button == mbLeft){        // 按左鍵才處理
        DragFlag = true;        // 設定檢查旗號            // 設畫筆為 xor 模式
        Image1->Picture->Bitmap->Canvas->Pen->Mode = pmXor;            // 記錄座標資訊
        BeginPos.x = X;
        BeginPos.y = Y;
        EndPos.x = X;
        EndPos.y = Y;            // 繪製第一個區塊 (因為座標相同,似乎可省略本步驟)
        Image1->Picture->Bitmap->Canvas->Rectangle(BeginPos.x, BeginPos.y, EndPos.x, EndPos.y);            // 設游標樣式為十字形
        Screen->Cursor = crCross;
    }
}
//----------------------------------------------------    void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
    if(DragFlag){
        // 清除 (還原) 前一次繪製的區域
        Image1->Picture->Bitmap->Canvas->Rectangle(BeginPos.x, BeginPos.y, EndPos.x, EndPos.y);            // 記錄變更後的座標位置
        EndPos.x = X;
        EndPos.y = Y;            // 繪製新的標註區域
        Image1->Picture->Bitmap->Canvas->Rectangle(BeginPos.x, BeginPos.y, EndPos.x, EndPos.y);
    }
}
//----------------------------------------------------    void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
    if(DragFlag){
        DragFlag=false;        // 清除檢查旗號
        Screen->Cursor = crDefault;        // 恢復游標形狀
    }
}
//----------------------------------------------------
系統時間:2024-05-11 15:12:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!