![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перетаскивание картинки с помощью мыши.(ошибка)
Aqua © (2011-01-03 19:19:00)lazarus XP вот код:
unit Unit1;ошибки такие:
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
var x0,y0:integer;
move:boolean;
procedure TForm1.Image1MouseDown(sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If button<>mbLeft Then
move:=false
Else begin
move:=true;
x0:=x;
y0:=y
end
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if move then begin
image1.Left:=image1.Left+x-x0; // Изменяем позицию левого края
image1.Top:=image1.Top+y-y0; // Изменяем позицию верхнего края
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
move:=false;
end;
initialization
{$I Unit1.lrs}
end.
Unit1.pas(18,66) Hint: Parameter "Shift" not used
Unit1.pas(19,44) Hint: Parameter "Shift" not used
Unit1.pas(20,42) Hint: Parameter "Button" not used
Unit1.pas(20,64) Hint: Parameter "Shift" not used
Unit1.pas(20,84) Hint: Parameter "X" not used
Unit1.pas(20,87) Hint: Parameter "Y" not used
Проект "project1" успешно собран. :)
на форме рисунок не таскается
KilkennyCat (2011-01-03 23:49:00) [1]
> вот же флаг драга:
так я и говорю, эта часть - верная.
Aqua (2011-01-03 23:12:00) [2]
>
> я же уже подсказал - лови более глобальные координаты.
> часть текущего решения верна - нужно запоминать флаг драга
> и координаты, где драг начался.
вот же флаг драга:
> procedure TForm1.Image1MouseDown(sender: TObject; Button:
> TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> begin
> If button<>mbLeft Then
> move:=false
> Else begin
> move:=true;
> x0:=x;
> y0:=y
> end
> end;
>
всё получилось спасибо всем кто помогал:) я оказывается забыл в инспекторе ==>события прописать:)
KilkennyCat (2011-01-03 22:23:00) [3]
> v_a_belousov (03.01.11 21:15) [17]
это да.
> Aqua (03.01.11 22:02) [18]
я же уже подсказал - лови более глобальные координаты.
часть текущего решения верна - нужно запоминать флаг драга и координаты, где драг начался.
Aqua (2011-01-03 22:02:00) [4]может подскажете найти другое решение?
v_a_belousov (2011-01-03 21:15:00) [5]почему же на форуме редактирования до сих пор нет...( захочешь что то исправить и пиши по новой...
v_a_belousov (2011-01-03 21:13:00) [6]
> > If button<>mbLeft Then
> > move:=false
а нет извиняюсь...
v_a_belousov (2011-01-03 21:11:00) [7]
> а... все равно не будет... с правой кнопкой мыши.
так ему вроде с правой и не нужно...
> If button<>mbLeft Then
> move:=false
KilkennyCat (2011-01-03 21:03:00) [8]а... все равно не будет... с правой кнопкой мыши.
KilkennyCat (2011-01-03 20:56:00) [9]тогда кинуть его на панель :)
KilkennyCat (2011-01-03 20:56:00) [10]
> sniknik © (03.01.11 20:22) [10]
да, точно... ступил.
v_a_belousov (2011-01-03 20:26:00) [11]
> ничего не дергается?
да есть такое... не смотрел просто до этого
sniknik (2011-01-03 20:22:00) [12]KilkennyCat © (03.01.11 20:17) [8]
а вот это работать не будет, имедж не окно...
KilkennyCat (2011-01-03 20:18:00) [13]
> v_a_belousov (03.01.11 20:13) [7]
и хорошо работает? ничего не дергается?
KilkennyCat (2011-01-03 20:17:00) [14]procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then begin
ReleaseCapture;
SendMessage(Image1.Handle, WM_SYSCOMMAND, $F012, 0);
end;
end;
v_a_belousov (2011-01-03 20:13:00) [15]
> KilkennyCat
Но в Delphi то и так работает почему то...
KilkennyCat (2011-01-03 20:13:00) [16]даже если привязка к событиям будет...
все, что тебе нужно - Magic number
KilkennyCat (2011-01-03 20:11:00) [17]конечно не будет. нужно отслеживать глобальное перемещение мыши, а не объекте, который под курсором перемещается...
Aqua (2011-01-03 19:59:00) [18]но прога не работает, рисунок не таскается ,форма запускается как надо но алгоритм не робит(( помогите плиз
Aqua (2011-01-03 19:59:00) [19]но прога не работает, рисунок не таскается ,форма запускается как надо но алгоритм не робит(( помогите плиз
sniknik (2011-01-03 19:58:00) [20]> ошибки такие:
хинт (подсказка) это не ошибка.
> на форме рисунок не таскается
ну, а события то происходят? точку останова если внутри поставить. к форме они как то привязаны? а то у тебя dfm-е нет (кода присоединения). как оно в лазарусе связывается без понятия...