〔Delphi7〕如何在advstringgrid中使用剪贴板 |
答題得分者是:老大仔
|
ralph921
一般會員 發表:17 回覆:31 積分:14 註冊:2005-08-22 發送簡訊給我 |
如题。
一、AdvStringGrid的goEditing属性是打开的。 如何将剪贴板中的内容复制到该AdvStringGrid中我先前选中的cell里? 如果是Edit或者RichEdit,可直接使用 Edit1.PasteFromClipboard; 在AdvStringGrid中如果使用 AdvStringGrid1.PasteFromClipboard; 那么程式默认把剪贴板的内容放在cells[0,0]中,想问AdvStringGrid有没有类似的语句可以把剪贴板中的内容粘贴到我先前select的cell中? 多谢 |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
您好~照您的意思來看
是想要在cell中做一個貼上的動作對吧? 以下的程式測試是ok的 不過~ 我是把貼上的動作寫在AdvStringGrid1DblClick中 [code delphi] procedure TForm1.AdvStringGrid1DblClick(Sender: TObject); begin AdvStringGrid1.PasteSelectionFromClipboard; end; [/code] ps:goEditing的屬性一樣也得設為TRUE
編輯記錄
老大仔 重新編輯於 2009-03-26 15:53:01, 註解 無‧
|
ralph921
一般會員 發表:17 回覆:31 積分:14 註冊:2005-08-22 發送簡訊給我 |
老大仔,你好。
我的意思是想要在cell中做一个贴上的动作没错。但照您的代码编译后(即PasteSelectionFromClipboard;),得出的效果是:粘贴的内容把cell中原有的内容覆盖了。 我想保留原有的内容,粘贴的内容应作为补充而非替换(有些类似于在selstart的位置插入)。 谢谢你! 另,因为任务急,我目前是采取一个笨办法,到该Advstringgrid得到焦点时,就使ctrl v的快捷键设为空(TPaste.ShortCut := TextToShortCut('');) |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
您好~
照您的說法 就是想要把原內容和剪貼簿的內容放在一起就對了是吧? 那麼應該也有個方法可以達到的 我在AdvStringGrid1上另外增了一個PopupMenu1 其功能就是做個貼上剪貼簿的內容(這部份你自己應該可以設好才對) 然後以以下的程式碼來達成 [code delphi] procedure TForm1.N1Click(Sender: TObject); begin AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.Row]:=AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.Row] Clipboard.AsText; end; [/code]
編輯記錄
老大仔 重新編輯於 2009-03-26 17:02:29, 註解 無‧
|
ralph921
一般會員 發表:17 回覆:31 積分:14 註冊:2005-08-22 發送簡訊給我 |
老大仔,你好
我们讨论代码的部分, AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.Row]:=AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.Row] Clipboard.AsText; 这句,实现起来应该是把剪贴板的内容粘到cell原有内容的后面。我想知道能否实现把剪贴板中的内容粘到某个特定位置,这个位置不一定在cell的开头或结尾,也可能在中间某两个字之间。 谢谢! ===================引 用 老大仔 文 章=================== 您好~ 照您的說法 就是想要把原內容和剪貼簿的內容放在一起就對了是吧? 那麼應該也有個方法可以達到的 我在AdvStringGrid1上另外增了一個PopupMenu1 其功能就是做個貼上剪貼簿的內容(這部份你自己應該可以設好才對) 然後以以下的程式碼來達成 [code delphi] procedure TForm1.N1Click(Sender: TObject); begin AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.Row]:=AdvStringGrid1.Cells[AdvStringGrid1.Col,AdvStringGrid1.Row] Clipboard.AsText; end; [/code] |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
|
ralph921
一般會員 發表:17 回覆:31 積分:14 註冊:2005-08-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |