Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 08.04.2008, 17:50   #1
shtuceron
 
Регистрация: 02.11.2007
Сообщений: 7
По умолчанию Drag&Drop

Всем привет, пытаюсь разобраться в этой удивительной штуке на примере формы и кнопки, но не могу понять в чем ошибка, после описания соответствующих процедур при нажатии на кнопку она сдвигается не равномерно, а только на расстояние равное длине между центром кнопки и местом нажатия.
Спасибо за внимание.
shtuceron вне форума Ответить с цитированием
Старый 08.04.2008, 17:54   #2
frodo
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 48
По умолчанию

Цитата:
Сообщение от shtuceron Посмотреть сообщение
Всем привет, пытаюсь разобраться в этой удивительной штуке на примере формы и кнопки, но не могу понять в чем ошибка, после описания соответствующих процедур при нажатии на кнопку она сдвигается не равномерно, а только на расстояние равное длине между центром кнопки и местом нажатия.
Спасибо за внимание.
А ты бы немог привести фрагмент кода!!а то тут телепатов кажись нету
frodo вне форума Ответить с цитированием
Старый 09.04.2008, 07:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Если следующий пост не будет с кодом автора тему закрою.
Stilet вне форума Ответить с цитированием
Старый 09.04.2008, 18:04   #4
shtuceron
 
Регистрация: 02.11.2007
Сообщений: 7
По умолчанию

Специально не выкладывал свой код, хотел узнать ваше мнение по возможному появлению ошибки и дойти самому, но предложений не поступило, однако ошибка была найдена: метод DRAGOVER мной был описан не на приемник (форму) а на источник (кнопку).

Привожу код исправленной программы, все работает.

implementation

{$R *.dfm}

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button = mbleft then
begin
TButton(Sender).BeginDrag(true);
end;
end;

procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if TButton(Source) is TButton then Accept:=true else Accept:=false;
end;

procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
TButton(Source).Left:=X;
TButton(Source).Top:=Y;
end;

end.
shtuceron вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
drag $ drop в DBGrid AlexandrSid Общие вопросы Delphi 13 21.06.2010 09:55
Помогите с drag-and-drop Cezar Win Api 3 19.10.2008 14:48
Drag&Drop в ListBox'ах MAKEDON Общие вопросы Delphi 3 21.08.2008 12:12
Drag&Drop по сети в Delphi vovan-brn Помощь студентам 0 28.05.2008 22:12
Drag and Drop Xardas Общие вопросы Delphi 8 20.01.2008 23:09


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840