Автор Павел задал вопрос в разделе Другие языки и технологии
Вопрос по Делфи и получил лучший ответ
Ответ от Дима[гуру]
Вот твоя ошибка:
Перепроверь строчку
SetCapture(Button1.Handle);
На второй кнопке надо написать SetCapture(Button2.Handle);
У тебя слишком большой код получился!! !
Попробуй написать мой.
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then
begin
ReleaseCapture;
(Sender as TControl).Perform(WM_SYSCOMMAND, $F012, 0);
end;
end;
Это универсальный способ перетаскивания всех объектов, у которых есть
событие OnMouseDown (класс TControl)
Опиши только эти 5 строчек НА ЛЮБОМ компоненте и все будет работать!!! !
Хотя твой код тоже работает! Молодец!
Учись! Занимайся!
Удачи!
Попробуй так:
procedure TForm1.Button2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then begin
SetCapture(Button2.Handle); // Здесь видимо описка
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
end;
Delphi, PopupMenu
Надо отцепить PopupMenu от всего и
procedure TForm1.ListBox1MouseDown(Sender: TObject;
подробнее...
stringgrid раскраска. при нажатии на ячейку нужно раскрасить его delphi или C++ builder
Непременно StringGrid?
Вот пример для DrawGrid. Дальше, если надо, сам адаптируй.
подробнее...
Delphi procedure TMain_Form.ApplicationEvents1Message
в Msg передаются еще и координаты курсора мыши. координаты эти отсчитываются от верхнего левого
подробнее...
Drag and Drop в делфи.
Проще всего делать Drag из тех компонентов, для которых однозначно ясно, что именно перетаскивать.
подробнее...
Delphi: как сделать,чтобы при нажатии ЛЕВОЙ кнопкой мыши по объекту выводилась PopupMenu?
Бросить на форму PopupMenu (ну и, конечно, оформить - двойным кликом)
а в инспекторе для этого
подробнее...
Гайморит...
Гайморит или нет, это ЛОР определяет по рентгеновскому снимку. Он же и антибиотики назначит,
подробнее...