Drag and Drop в Delphi
Всем привет, появилась необходимость перетаскивать элементы с Form1 на Form2 к примеру перенести мышью текст с 1-й формы в Edit1 другой формы, возможно ли такое реализовать? И в какую сторону искать информацию? Я слышала про Drag and Drop, в инете полно примеров, но там перетаскивание файлов, а мне нужно из одного окна в другое и в нужный компонент, помогите с решением это проблемы!
Ответы (1 шт):
Автор решения: Alex R.
→ Ссылка
Вот статья с небольшим описанием механизма Drag and Drop.
Основные участи кода для элемента-источника TFormFrom.EditFrom (события OnEndDrag, OnMouseDown) и элемента-приемника TFormTo.EditTo (события OnDragDrop, OnDragOver)
procedure TFormFrom.EditFromEndDrag(Sender, Target: TObject; X, Y: Integer);
begin
if Assigned(Target) then
TEdit(Sender).Text := 'Текст перенесен в ' + TEdit(Target).Name;
end;
procedure TFormFrom.EditFromMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
if Button = mbLeft then
TEdit(Sender).BeginDrag(True);
end;
procedure TFormTo.EditToDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
TEdit(Sender).Text := TEdit(Source).Text;
TEdit(Sender).SetFocus;
TEdit(Sender).SelectAll;
end;
procedure TFormTo.EditToDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState;
var Accept: Boolean);
begin
if Source is TEdit then
Accept := True
else
Accept := False;
end;