如何把richedit的文本拖动到edit中?(100分)

  • 主题发起人 主题发起人 robinson
  • 开始时间 开始时间
R

robinson

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把richedit的文本拖动到edit中?
 
procedure TForm1.Edit1DragOver(Sender, Source: TObject;
X, Y: Integer;
State: TDragState;
var Accept: Boolean);
begin
Accept:=True;
end;

procedure TForm1.RichEdit1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if Key=16 then
RichEdit1.begin
Drag(True);
end;

procedure TForm1.Edit1DragDrop(Sender, Source: TObject;
X, Y: Integer);
begin
Edit1.Text:=RichEdit1.SelText;
end;
 

to robinson:
下面的代码是以将richedit的文本 放到Memo为例的。
//选中文本并按下鼠标后,开始托动。
procedure TForm1.RichEdit1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
if button =MbLeft then
richEdit1.begin
Drag(True);
end;

//允许放到memo1中。
procedure TForm1.Memo1DragOver(Sender, Source: TObject;
X, Y: Integer;
State: TDragState;
var Accept: Boolean);
begin
Accept :=true;
end;

//接收文本后,结束拖动。
procedure TForm1.Memo1DragDrop(Sender, Source: TObject;
X, Y: Integer);
begin
Memo1.Lines.Add(RichEdit1.SelText);
richEdit1.EndDrag(true);
end;
 
照两位我早就做到了,但这样一来richedit自己的拖动不能用了:
procedure TForm1.Edit1DragDrop(Sender, Source: TObject;
X, Y: Integer);
begin
if Source is TRichedit then
Edit1.Text :=s;
end;
procedure TForm1.Edit1DragOver(Sender, Source: TObject;
X, Y: Integer;
State: TDragState;
var Accept: Boolean);
begin
if Source is TRichedit then
Accept:=true
else
Accept:=false;
end;
procedure TForm1.RichEdit1DragDrop(Sender, Source: TObject;
X, Y: Integer);
begin
if Source is TRichedit then
Richedit1.SelText :=s;
end;
procedure TForm1.RichEdit1DragOver(Sender, Source: TObject;
X, Y: Integer;
State: TDragState;
var Accept: Boolean);
begin
if Source is TRichedit then
Accept:=true
else
Accept:=false;
end;
procedure TForm1.RichEdit1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
if RichEdit1.SelLength >0 then
begin
s:=RichEdit1.selText ;
RichEdit1.begin
Drag(true);
end;

end;
 
后退
顶部