Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Страницы:   1 2

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-е нет (кода присоединения). как оно в лазарусе связывается без понятия...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо