Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.27;
Скачать: CL | DM;

Вниз

Перетаскивание картинки с помощью мыши.(ошибка)   Найти похожие ветки 

 
Aqua   (2011-01-03 19:19) [0]

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" успешно собран. :)

на форме рисунок не таскается


 
Anatoly Podgoretsky ©   (2011-01-03 19:28) [1]

> Aqua  (03.01.2011 19:19:00)  [0]

Если проект успешно сообран, то ошибок не обнаружено.


 
sniknik ©   (2011-01-03 19:58) [2]

> ошибки такие:
хинт (подсказка) это не ошибка.

> на форме рисунок не таскается
ну, а события то происходят? точку останова если внутри поставить. к форме они как то привязаны? а то у тебя dfm-е нет (кода присоединения). как оно в лазарусе связывается без понятия...


 
Aqua   (2011-01-03 19:59) [3]

но прога не работает, рисунок не таскается ,форма запускается как надо но алгоритм не робит(( помогите плиз


 
Aqua   (2011-01-03 19:59) [4]

но прога не работает, рисунок не таскается ,форма запускается как надо но алгоритм не робит(( помогите плиз


 
KilkennyCat ©   (2011-01-03 20:11) [5]

конечно не будет. нужно отслеживать глобальное перемещение мыши, а не объекте, который под курсором перемещается...


 
KilkennyCat ©   (2011-01-03 20:13) [6]

даже если привязка к событиям будет...

все, что тебе нужно - Magic number


 
v_a_belousov   (2011-01-03 20:13) [7]


> KilkennyCat

Но в Delphi то и так работает почему то...


 
KilkennyCat ©   (2011-01-03 20:17) [8]

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;


 
KilkennyCat ©   (2011-01-03 20:18) [9]


> v_a_belousov   (03.01.11 20:13) [7]

и хорошо работает? ничего не дергается?


 
sniknik ©   (2011-01-03 20:22) [10]

KilkennyCat ©   (03.01.11 20:17) [8]
а вот это работать не будет, имедж не окно...


 
v_a_belousov   (2011-01-03 20:26) [11]


> ничего не дергается?

да есть такое... не смотрел просто до этого


 
KilkennyCat ©   (2011-01-03 20:56) [12]


> sniknik ©   (03.01.11 20:22) [10]

да, точно... ступил.


 
KilkennyCat ©   (2011-01-03 20:56) [13]

тогда кинуть его на панель :)


 
KilkennyCat ©   (2011-01-03 21:03) [14]

а... все равно не будет... с правой кнопкой мыши.


 
v_a_belousov   (2011-01-03 21:11) [15]


> а... все равно не будет... с правой кнопкой мыши.

так ему вроде с правой и не нужно...

> If button<>mbLeft Then
> move:=false


 
v_a_belousov   (2011-01-03 21:13) [16]


> > If button<>mbLeft Then
> > move:=false

а нет извиняюсь...


 
v_a_belousov   (2011-01-03 21:15) [17]

почему же на форуме редактирования до сих пор нет...( захочешь что то исправить и пиши по новой...


 
Aqua   (2011-01-03 22:02) [18]

может подскажете найти другое решение?


 
KilkennyCat ©   (2011-01-03 22:23) [19]


> v_a_belousov   (03.01.11 21:15) [17]

это да.


> Aqua   (03.01.11 22:02) [18]

я же уже подсказал - лови более глобальные координаты.
часть текущего решения верна - нужно запоминать флаг драга и координаты, где драг начался.


 
Aqua   (2011-01-03 23:12) [20]


>
> я же уже подсказал - лови более глобальные координаты.
> часть текущего решения верна - нужно запоминать флаг драга
> и координаты, где драг начался.

вот же флаг драга:

> 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 23:49) [21]


> вот же флаг драга:

так я и говорю, эта часть - верная.



Страницы: 1 вся ветка

Текущий архив: 2011.03.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
15-1292362195
Юрий
2010-12-15 00:29
2011.03.27
С днем рождения ! 15 декабря 2010 среда


2-1293459918
Дмитрий С
2010-12-27 17:25
2011.03.27
Отключить питание.


15-1291835265
И. Павел
2010-12-08 22:07
2011.03.27
Везде халтура :)


1-1250980688
Ruzzz
2009-08-23 02:38
2011.03.27
Класс настроек и сохранение/загрузка XML


15-1291966167
И. Павел
2010-12-10 10:29
2011.03.27
Разграничение разработки и установки