Форум: "Начинающим";
Текущий архив: 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.45 MB
Время: 0.06 c