PasteFromClipboard, Undo, ClearUndo, SelectAll 的原始碼如後, 以取得其對應的 message.
如: selectall 是送出EM_SETSEL message, 複製是送出WM_COPY.
代碼: 選擇全部
procedure TCustomEdit.Clear;
begin
SetWindowText(Handle, '');
end;
procedure TCustomEdit.ClearSelection;
begin
SendMessage(Handle, WM_CLEAR, 0, 0);
end;
procedure TCustomEdit.CopyToClipboard;
begin
SendMessage(Handle, WM_COPY, 0, 0);
end;
procedure TCustomEdit.CutToClipboard;
begin
SendMessage(Handle, WM_CUT, 0, 0);
end;
procedure TCustomEdit.PasteFromClipboard;
begin
SendMessage(Handle, WM_PASTE, 0, 0);
end;
procedure TCustomEdit.Undo;
begin
SendMessage(Handle, WM_UNDO, 0, 0);
end;
procedure TCustomEdit.ClearUndo;
begin
SendMessage(Handle, EM_EMPTYUNDOBUFFER, 0, 0);
end;
procedure TCustomEdit.SelectAll;
begin
SendMessage(Handle, EM_SETSEL, 0, -1);
end;
//以下為一個使用的範例. 其中利用了 TClipBoard 來進行檢查剪貼簿中的資料
//是否為 文字.
// 記得 uses clipbrd
procedure Tform1.Button1Click(Sender: TObject);
var
ClipBoard:TClipBoard;
begin
ClipBoard:=TClipBoard.Create;
ClipBoard.Clear;
SendMessage(Edit1.Handle,EM_SETSEL,0,-1);
SendMessage(Edit1.Handle,WM_COPY,0,0);
if Clipboard.Hasformat(CF_TEXT) then
begin
Edit2.Clear;
Edit2.PasteFromClipBoard;
end;
ClipBoard.free;
end;