怎样才能将别的程序(比如说IE)中的文本拖到自己程序的文本输入框中? 在IE中选中文本后,拖动到程序的文本输入框中,这时文本输入框就能自动填上在IE中选中的文本,请问要怎么实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以下的程序在Delphi7可運行。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, ExtCtrls, ActiveX, ComObj, ClipBrd;type TForm1 = class(TForm, IDropTarget) Panel1: TPanel; Memo1: TMemo; Panel2: TPanel; MaskEdit1: TMaskEdit; ComboBox1: TComboBox; Button1: TButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private function DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall; function DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall; function DragLeave: HResult; stdcall; function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; stdcall; function _AddRef: Integer; stdcall; function _Release: Integer; stdcall; end;var Form1: TForm1;implementationuses ShellAPI;{$R *.dfm}function TForm1.DragEnter(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult;begin dwEffect := DROPEFFECT_COPY; Result := S_OK;end;function TForm1.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult;begin dwEffect := DROPEFFECT_COPY; Result := S_OK;end;function TForm1.DragLeave: HResult;begin Result := S_OK;end;function TForm1._AddRef: Integer;begin Result := 1;end;function TForm1._Release: Integer;begin Result := 1;end;function TForm1.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult;var aFmtEtc: TFORMATETC; aStgMed: TSTGMEDIUM; pData: PChar;begin if (dataObj = nil) then raise Exception.Create('IDataObject-Pointer is not valid!'); with aFmtEtc do begin cfFormat := CF_TEXT; ptd := nil; dwAspect := DVASPECT_CONTENT; lindex := -1; tymed := TYMED_HGLOBAL; end; OleCheck(dataObj.GetData(aFmtEtc, aStgMed)); try pData := GlobalLock(aStgMed.hGlobal); MaskEdit1.Text := pData; ComboBox1.Text := pData; Memo1.Text := pData; Memo1.Text := ClipBoard.AsText; finally GlobalUnlock(aStgMed.hGlobal); ReleaseStgMedium(aStgMed); end; Result := S_OK; end;procedure TForm1.FormCreate(Sender: TObject);begin OleInitialize(nil); OleCheck(RegisterDragDrop(Handle, Self));end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin RevokeDragDrop(Handle); OleUninitialize;end;procedure TForm1.Button1Click(Sender: TObject);begin MaskEdit1.Text := ''; ComboBox1.Text := ''; Memo1.Clear;end;end. 关于fastreport的打印问题,急啊! Rave报表中如何打印JPG图片? WGYKING(修罗是谁?!) 用了你的方法,出现了一个问题。 如何恢复Delphi的第三方控件? 如何在DELPHI中使用URL? 强烈鄙视,D版的某些狗屁版主,不吃凉粉你就让凳子 打印问题请教,留言有分. cxgrid 加载本地图片??? 有个数据导入的问题困扰我好久了,高手帮忙。 help Me !如何调用API?? 怎样将某个字段的值改为null值? dbgrid显示
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ExtCtrls,
ActiveX, ComObj, ClipBrd;type
TForm1 = class(TForm, IDropTarget)
Panel1: TPanel;
Memo1: TMemo;
Panel2: TPanel;
MaskEdit1: TMaskEdit;
ComboBox1: TComboBox;
Button1: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
function DragEnter(const dataObj: IDataObject;
grfKeyState: Longint;
pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
function DragOver(grfKeyState: Longint;
pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
function DragLeave: HResult; stdcall;
function Drop(const dataObj: IDataObject;
grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
end;var
Form1: TForm1;implementation
uses ShellAPI;{$R *.dfm}function TForm1.DragEnter(const dataObj: IDataObject;
grfKeyState: Longint;
pt: TPoint;
var dwEffect: Longint): HResult;
begin
dwEffect := DROPEFFECT_COPY;
Result := S_OK;
end;function TForm1.DragOver(grfKeyState: Longint;
pt: TPoint;
var dwEffect: Longint): HResult;
begin
dwEffect := DROPEFFECT_COPY;
Result := S_OK;
end;function TForm1.DragLeave: HResult;
begin
Result := S_OK;
end;function TForm1._AddRef: Integer;
begin
Result := 1;
end;function TForm1._Release: Integer;
begin
Result := 1;
end;function TForm1.Drop(const dataObj: IDataObject;
grfKeyState: Longint;
pt: TPoint;
var dwEffect: Longint): HResult;
var
aFmtEtc: TFORMATETC;
aStgMed: TSTGMEDIUM;
pData: PChar;
begin
if (dataObj = nil) then
raise Exception.Create('IDataObject-Pointer is not valid!'); with aFmtEtc do begin
cfFormat := CF_TEXT;
ptd := nil;
dwAspect := DVASPECT_CONTENT;
lindex := -1;
tymed := TYMED_HGLOBAL;
end; OleCheck(dataObj.GetData(aFmtEtc, aStgMed));
try
pData := GlobalLock(aStgMed.hGlobal);
MaskEdit1.Text := pData;
ComboBox1.Text := pData;
Memo1.Text := pData;
Memo1.Text := ClipBoard.AsText;
finally
GlobalUnlock(aStgMed.hGlobal);
ReleaseStgMedium(aStgMed);
end;
Result := S_OK;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
OleInitialize(nil);
OleCheck(RegisterDragDrop(Handle, Self));
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
RevokeDragDrop(Handle);
OleUninitialize;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
MaskEdit1.Text := '';
ComboBox1.Text := '';
Memo1.Clear;
end;end.