如题目所示,比如说我要从某个地复制一段字符串:ABCD,如何实现Edit自动从剪贴板上获取这一段字符串,填进去呀,加上判断,如不是字符型的,不填充,希望会的人能教教我,如何实现,谢谢!

解决方案 »

  1.   

    如果是自动的,也就是说,你需要在剪贴板改变的时候,知道它的改变,那你需要第一步,SetClipboardViewer,然后监听WM_DrawClipboard第二步,用ClipBrd的TClipBoard 
    if Clipboard.HasFormat(CF_text) 
    then edtYourTargetEdit.text = Clipboard.asText 
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, Clipbrd;type
      TForm1 = class(TForm)
        Memo1: TMemo;
        tmr1: TTimer;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        procedure Msg(var Msg: TMessage); message WM_DRAWCLIPBOARD;
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      ClipHandle: THandle;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      ClipHandle := SetClipboardViewer(Handle);
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      ChangeClipboardChain(Handle, ClipHandle);
    end;procedure TForm1.Msg(var Msg: TMessage);
    begin
      if Msg.Msg = WM_DRAWCLIPBOARD then
        if Clipboard.HasFormat(CF_TEXT) or (Clipboard.HasFormat(CF_OEMTEXT)) then
          Memo1.PasteFromClipboard;
    end;end.