Форум: "Начинающим";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];
ВнизПеретаскивание картинки с помощью мыши.(ошибка) Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c