Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2010, 14:06   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию Перетаскивание image(a)

Всем доброго времени суток у меня такой вопрос как надо перетаскивать image c одного scrollbox на другой? вот пример
Вот так я сделал перетаскивание но тока я перетинул картинку как потом она не пере таскиваеть дотехпо пока я не отпщу мышку если у кавото есть предложение зарание благодарин
Вложения
Тип файла: rar Пример.rar (21.7 Кб, 24 просмотров)
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 16.08.2010, 14:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
пока я не отпщу мышку
Ну так весь смысл Drag&Drop в том чтоб отпустить мышку, а не держать ее в заточении твоих пальцев.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.08.2010, 16:53   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Drag&Drop
Всмысле, а как это сделать? Не покажите ли примером?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 16.08.2010, 17:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да запросто:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ScrollBox1: TScrollBox;
    ScrollBox2: TScrollBox;
    Image1: TImage;
    procedure Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
    procedure Image1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure ScrollBox1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure ScrollBox2DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
//
end;

procedure TForm1.Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
 TImage(Sender).Parent:=TWinControl(Target);
end;

procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
//
end;

procedure TForm1.ScrollBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
//
end;

procedure TForm1.ScrollBox2DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
//
end;

end.
Обрати внимание на один момент - для правильного переноса нужно реализовать нужные обработчики событий под себя, поэтому не удивляйся - они у меня хоть пустые, но задействованные, без них ДрагДроп неполноценен.

Самое главное - TImage(Sender).Parent:=TWinControl( Target); банальное переопределение родителя для Image

Не забудь для Image в свойствах выставить DragMode:=dmAutomatic
Ну как бы ниче не забыл...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2010, 10:27   #5
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

А как теперь спомощью этого перетакскивать синхронно картинку с мышью???
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 17.08.2010, 10:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
спомощью этого перетакскивать синхронно картинку с мышью???
э-э-э... А можно вопрос переформулировать специально для сельских дубков, ато мы сами не месные, да на грош учены.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2010, 10:56   #7
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
А можно вопрос переформулировать специально для сельских дубков
Ну вот смотрите
Цитата:
Код:
procedure TForm1.Image1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
//
end;

procedure TForm1.Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
 TImage(Sender).Parent:=TWinControl(Target);
end;

procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
//
end;

procedure TForm1.ScrollBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
//
end;

procedure TForm1.ScrollBox2DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
//
end;
С помощью какой процедуры можно перетаскивать картинку ну как у меня было она перетаскивалась синхронно с мышкой.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 17.08.2010, 11:05   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
С помощью какой процедуры можно перетаскивать картинку
Прощу прощения но по прежнему не понимаю вопроса...
Обработчики что я привел все хором составляют механизм перетаскивания, и обязаны быть в коде даже пустыми, я потому некоторые из них закоментировал но оставил ибо без них перетаскивание не пойдет верным путем
Цитата:
перетаскивалась синхронно с мышкой
Подожди, ты имеешь ввиду таскать контрол аки окно? Схватил и пока держишь контрол идет за мышой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.08.2010, 11:13   #9
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Подожди, ты имеешь ввиду таскать контрол аки окно? Схватил и пока держишь контрол идет за мышой?
Ну конечно берёшь и таскаешь за сабой))
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 17.08.2010, 11:19   #10
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

А Delphi World для кого существует?
Код:
procedure TForm1.Button1MouseDown(Sender: TObject; Button:
  TMouseButton; Shift: TShiftState; X, Y: Integer);
{$IFNDEF WIN32}
var
  pt: TPoint;
{$ENDIF}
begin
  if ssCtrl in Shift then
  begin
    ReleaseCapture;
    SendMessage(Button1.Handle, WM_SYSCOMMAND, 61458, 0);
{$IFNDEF WIN32}
    GetCursorPos(pt);
    SendMessage(Button1.Handle,
      WM_LBUTTONUP,
      MK_CONTROL,
      Longint(pt));
{$ENDIF}
  end;
end;
Действует при зажатом левом контроле
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскивание формы Nester Общие вопросы Delphi 2 24.07.2009 12:35
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
Перетаскивание формы. IVANSour Общие вопросы Delphi 2 03.02.2009 22:06
Перетаскивание geniy Компоненты Delphi 9 12.01.2009 02:10
Перетаскивание формы s-force Общие вопросы Delphi 13 07.09.2007 15:38