Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Вниз

Перетащить картинку...   Найти похожие ветки 

 
Expell ©   (2007-03-07 06:35) [0]

Подскажите как реализовать, чтобы в run-time мышкой можно перетаскивать объект, в данном случае Image.

Просто в Image загружаю рисунок, пытаюсь переместить - ... не выходит:(.

Нашел как кнопки перетаскивать, а вот IQ не хватает для image сделать.

Будьте любезны, подскажите..


 
PZ   (2007-03-07 07:47) [1]

Ну, например, используя MouseDown, MouseMove, MouseUp. А как Вы пытались переместить?


 
Elen ©   (2007-03-07 07:49) [2]

Не вопрос :

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, jpeg, ExtCtrls;

type
 TForm1 = class(TForm)
   Image1: TImage;
   procedure Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
   procedure Image1DragOver(Sender, Source: TObject; X, Y: Integer;
     State: TDragState; var Accept: Boolean);
   procedure Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
   procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
 private
   { Private declarations }
 public   tp:tpoint;
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

uses Types;

{$R *.dfm}

procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
caption:="ss";
end;

procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
 State: TDragState; var Accept: Boolean);
var t:Tpoint;
begin
t:=Form1.ScreenToClient(Mouse.CursorPos);
caption:=inttostr(t.x);
Image1.Left:=t.X-tp.x;
Image1.Top:=t.Y-tp.Y;
end;

procedure TForm1.Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
tag:=0;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
  tp.X:=x;tp.Y:=y;
  Image1.BeginDrag(true);
end;

end.


Разберешся, или пояснить?


 
eXPell ©   (2007-03-07 07:57) [3]


> PZ   (07.03.07 07:47) [1]

для кнопки эти события работают великолепно, а вот для картинки - ... неа.
Для рисунка вариант предложенный Elen © более подходящий:)

ЗЫ. 2Elen ©пояснять не надо, буду разбираться самостоятельно, а если будут вопросы - ожидайте на первом канале:)


 
eXPell ©   (2007-03-09 08:22) [4]

Ну никак не могу сообразить как ограничить перетаскивание картинки((.

Есть image1 и image2. По первому я перетаскиваю второй. Если количество пикселей(если я правильно понимаю) больше числа N, то перетаскивание останавливается.

вот такой обработчик(вроде бы ограничивает, но выбивает ошибку):
procedure TForm1.Image2DragOver(Sender, Source: TObject; X, Y: Integer;
 State: TDragState; var Accept: Boolean);
var
t:Tpoint;
nx,ny,ky,kx:Tpoint;
begin
 nx.X:=tt.X;
 ny.Y:=tt.Y;
 t:=image1.ScreenToClient(Mouse.CursorPos);
 caption:=inttostr(t.x);
 Image2.Left:=t.X-tp.x;
 Image2.Top:=t.Y-tp.Y;
 kx.X:=Image2.Left;
 ky.Y:=Image2.Top;
 if (kx.X-nx.X>50) then
 image2.EndDrag(true);
 end;

объясните что ни так?



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

Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.062 c
3-1168374689
VahaC
2007-01-09 23:31
2007.04.01
Как связать два компонента DBLookupComboBox


9-1145972892
KiberKot
2006-04-25 17:48
2007.04.01
Нажатие двух клавиш


2-1173692409
..::KraN::..
2007-03-12 12:40
2007.04.01
Прозрачность окна в Delphi.


2-1173775558
Choco
2007-03-13 11:45
2007.04.01
установить ключевое поле


4-1163501617
novill
2006-11-14 13:53
2007.04.01
Как программно нажать (Num,Caps,Scroll)Lock?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский