国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在StringGrid中用右鍵菜單實現復制粘貼

2019-11-17 05:29:24
字體:
來源:轉載
供稿:網友
ccrun(老妖)本無心寫這篇文章,因為功能及代碼比較簡單,恐有人不屑。只是在回復csdn一位朋友的帖子,久不寫這種代碼了,一時認真起來,把注釋寫了個具體,順便就貼上來吧,也許對剛入門的朋友有所幫助。
所實現的效果就是在StrinGrid上點右鍵,然后彈出一個菜單,可以復制當前單元格中的內容,然后粘貼到其他單元格中。

在Form上放置一個PopupMenu,添加兩個MenuItem,分明為miCopy和mipaste,然后在StringGrid的OnMouseUp事件和miCopy,miPaste的OnClick事件中添加以下代碼:

#include <vcl/Clipbrd.hpp>

TPoint g_ptSelect; // 記錄在StringGrid上點右鍵彈出菜單時的鼠標位置
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    if(Button == mbRight) // 在StringGrid上右點鍵
    {
        // 選中當前選中的單元格:
        int nCol, nRow;
        StringGrid1->MouseToCell(X, Y, nCol, nRow);
        // 假如在第一行或第一列,或者不在單元格中,則不處理
        if(nCol < 1  nRow < 1)
            return;
        StringGrid1->Col = nCol;
        StringGrid1->Row = nRow;
        // 記錄下當前的鼠標位置,因為在菜單彈出以后,鼠標選擇菜單時坐標會改變
        g_ptSelect = Mouse->CursorPos;
        // 彈出菜單
        PopupMenu1->Popup(Mouse->CursorPos.x, Mouse->CursorPos.y);
    }
}
//---------------------------------------------------------------------------
// 63 63 72 75 6E 2E 63 6F 6D
void __fastcall TForm1::miCopyClick(TObject *Sender)
{
    // 確定是復制哪個Cell
    TPoint pt(StringGrid1->ScreenToClient(g_ptSelect));
    int nCol, nRow;
    StringGrid1->MouseToCell(pt.x, pt.y, nCol, nRow);
    // 將選中的內容復制到剪貼板
    Clipboard()->AsText = StringGrid1->Cells[nCol][nRow];
}
//---------------------------------------------------------------------------
void __fastcall TForm1::miPasteClick(TObject *Sender)
{
    // 確定要粘貼到哪個Cell
    TPoint pt(StringGrid1->ScreenToClient(g_ptSelect));
    int nCol, nRow;
    StringGrid1->MouseToCell(pt.x, pt.y, nCol, nRow);
    // 將剪貼板中的內容粘貼到單元格
    StringGrid1->Cells[nCol][nRow] = Clipboard()->AsText;
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平果县| 呼和浩特市| 迁安市| 琼海市| 错那县| 应城市| 博爱县| 大厂| 鄂托克前旗| 玉环县| 浪卡子县| 卓资县| 乌拉特前旗| 冷水江市| 张掖市| 青川县| 博罗县| 张家界市| 黄山市| 南通市| 宁夏| 泽州县| 玛曲县| 铁岭市| 巴青县| 谷城县| 务川| 汝阳县| 武威市| 望江县| 金华市| 辛集市| 湄潭县| 霍城县| 庐江县| 万安县| 陵川县| 林州市| 策勒县| 镇赉县| 黄平县|