Теперь установите этот компонент в package, создайте новый проект в Delphi и поместите на форму два TMyMemo. Для обоих компонент необходимо создать обработчики событий OnDragOver, которые должны выглядеть следующим образом:
Code: |
procedure TForm1.MyMemo1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source is TMyMemo; end; |
Так же для них необходимо сделать обработчики событий OnDragDrop:
Code: |
procedure TForm1.MyMemo1DragDrop(Sender, Source: TObject; X, Y: Integer); var Dst, Src : TMyMemo; Ch : Integer; Temp : String; begin Dst := Sender as TMyMemo; Src := Source as TMyMemo; Ch := LoWord(Dst.Perform(EM_CHARFROMPOS,0,MakeLParam(X,Y)));
if (Src = Dst) and (Ch >= Src.LastSelStart) and (Ch <= Src.LastSelStart+Src.LastSelLength-1) then Exit;
Dst.Text := Copy(Dst.Text,1,Ch)+Src.SelText+ Copy(Dst.Text,Ch+1,Length(Dst.Text)-Ch); Temp := Src.Text; Delete(Temp,Src.LastSelStart+1,Src.LastSelLength); Src.Text := Temp; end;
|
Запустите приложение, поместите в поля memo какой-нибудь текст, и посмотрите что произойдёт, если перетащить текст между полями.
Взято из https://forum.sources.ru
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!