7
對於TEdit組件,組件是否可以通過將換行符轉換爲空格來處理Windows剪貼板中的多行粘貼?將多行代碼粘貼到TEdit中
換句話說,如果下面的數據是在Windows剪貼板:
Hello
world
!
...和用戶把他們的光標在TEDIT然後按CTRL + V,將有可能有TEdit顯示輸入爲:
Hello world!
對於TEdit組件,組件是否可以通過將換行符轉換爲空格來處理Windows剪貼板中的多行粘貼?將多行代碼粘貼到TEdit中
換句話說,如果下面的數據是在Windows剪貼板:
Hello
world
!
...和用戶把他們的光標在TEDIT然後按CTRL + V,將有可能有TEdit顯示輸入爲:
Hello world!
您將需要使用的中介類的子類的TEdit
,並添加一個處理程序WM_PASTE
消息:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, adsdata, adsfunc, adstable;
type
TEdit= class(StdCtrls.TEdit)
procedure WMPaste(var Msg: TWMPaste); message WM_PASTE;
end;
type
TForm3 = class(TForm)
AdsTable1: TAdsTable;
Edit1: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
uses
Clipbrd;
{ TEdit }
procedure TEdit.WMPaste(var Msg: TWMPaste);
var
TempTxt: string;
begin
TempTxt := Clipboard.AsText;
TempTxt := StringReplace(TempTxt, #13#10, #32, [rfReplaceAll]);
Text := TempTxt;
end;
end.
如果你有一個特定的情況下,你覺得子類是矯枉過正,你可以指定一個「YourEdit.WindowProc」的新消息處理程序。 – GolezTrol