Непонятка с Drag-n-Drop

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Непонятка с Drag-n-Drop

Сообщение keymaster » 04.08.2006 12:17:02

Не могу заставить работать драг-дроп.

На форме панель, на панели - edit, который можно таскать по панели.

в Delphi работает, в лазаре - не хочет.
Последний раз редактировалось keymaster 04.08.2006 12:36:48, всего редактировалось 1 раз.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение keymaster » 04.08.2006 12:27:04

Вот.
Этот код работает в Delphi (7), но не работает в Lasarus.
Код: Выделить всё
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
with TEdit(Source) do
begin
   Left := X;
   Top := Y;
end;
end;

procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source.ClassName = 'TEdit';
end;     

Дополнение:
Panel1.Align := alClient;
Panel1.DragMode := dmManual;
Edit1.DragMode := dmAutomatic;
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение keymaster » 25.08.2006 23:34:43

Обнаружилось, что проблема в том, что в Panel1DragOver, Source.ClassName - TDragDropObject.

Никто не сталкивался?
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение GrayEddy » 26.08.2006 11:53:38

Если не ошибаюсь, Drag&Drop не реализован в Лазарусе. Причина - кросплатформенность.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение keymaster » 26.08.2006 13:23:05

Хм... в самом-то лазаре драгдроп работает... компоненты по форме двигать можно же.
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03

Сообщение GrayEddy » 26.08.2006 23:25:59

Ну.. это компоненты-то. Им права даны :)
А вот и ссылка
http://wiki.lazarus.freepascal.org/inde ... lphi_Users
Читаем абзац Control Dragging/Docking и приходим к неутешительным выводам.
Правда, этот опус был написан в 2003 году. С тех пор много воды утекло, но не думаю, что положение изменилось.
Т.е LCL проектировали так, чтобы работало на всех платформах (которые Лазарус поддерживает). А это означает, что вещи, специфичные для Windows, сюда не вошли. К примеру, поддержку OLE не сделали.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение keymaster » 27.08.2006 01:31:24

Прочитал...
Придётся всё своими рукамии писать...
keymaster
новенький
 
Сообщения: 73
Зарегистрирован: 13.04.2006 12:16:03


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49

Рейтинг@Mail.ru