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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2014, 00:35   #1
Azamat_92
Пользователь
 
Регистрация: 05.04.2014
Сообщений: 17
По умолчанию Соединить линией 2 объекта с возможностью перемещения

Доброе время суток.
у меня есть 2 Edit могу ли я их соединить линией ? да так, что бы перемещая любой из них соединение линией не прекращалось. Соединение желательно производить по центру.
Azamat_92 вне форума Ответить с цитированием
Старый 23.04.2014, 01:06   #2
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

иллюстрацию можно?
XE5 вне форума Ответить с цитированием
Старый 23.04.2014, 01:32   #3
Azamat_92
Пользователь
 
Регистрация: 05.04.2014
Сообщений: 17
По умолчанию

http://pixs.ru/showimage/Bezimyanni_...0_11809434.png
Azamat_92 вне форума Ответить с цитированием
Старый 23.04.2014, 02:03   #4
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Код:
var
  Form1: TForm1;
  x2, y2: integer;
  ToMove: boolean;
implementation

{$R *.dfm}

procedure TForm1.ToPaint;
begin
  Canvas.FillRect(ClientRect);
  Canvas.MoveTo(Edit1.Left + Edit1.Width div 2, Edit1.Top);
  Canvas.LineTo(Edit2.Left + Edit2.Width div 2, Edit2.Top);
end;

procedure TForm1.EditMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ToMove := true;
  x2 := x;
  y2 := y;
end;

procedure TForm1.EditMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ToMove then
    with (Sender as TEdit) do
      begin
        Left := Left + (x - x2);
        Top := Top + (y - y2);
        ToPaint;
    end;
end;

procedure TForm1.EditMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ToMove := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.OnMouseDown := EditMouseDown;
  Edit2.OnMouseDown := EditMouseDown;
  Edit1.OnMouseUp := EditMouseUp;
  Edit2.OnMouseUp := EditMouseUp;
  Edit1.OnMouseMove := EditMouseMove;
  Edit2.OnMouseMove := EditMouseMove;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  ToPaint;
end;
Характеристики линии (цвет, толщина, тип) можно менять. Изучайте свойства Canvas.Pen

Последний раз редактировалось XE5; 23.04.2014 в 04:38.
XE5 вне форума Ответить с цитированием
Старый 23.04.2014, 12:07   #5
Azamat_92
Пользователь
 
Регистрация: 05.04.2014
Сообщений: 17
По умолчанию

извините я наверное совсем чайник, раз не могу воспользоваться готовым кодом и сделать проект , скиньте проект пожалуйста.
спасибо вам большое.
Azamat_92 вне форума Ответить с цитированием
Старый 23.04.2014, 13:02   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

собрал для Вас проект из написанного кода (с) XE5

Исходник: Project1.rar

Исполняемый (скомпилированный) exe-шник: Project1exe.rar
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2014, 13:33   #7
Azamat_92
Пользователь
 
Регистрация: 05.04.2014
Сообщений: 17
По умолчанию

спасибо
Azamat_92 вне форума Ответить с цитированием
Старый 23.04.2014, 13:49   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Azamat_92 Посмотреть сообщение
спасибо
Пожалуйста.
Хотя, мне то не за что, это XE5 реализовал код!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2014, 13:56   #9
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Как говорится, всем спасибо, все свободны
XE5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерактивная схема с возможностью добавления/удаления/перемещения объектов в Run-Time Demonmerc Мультимедиа в Delphi 2 02.04.2011 20:57
Зачеркивание текста волнистой линией natale Microsoft Office Word 1 20.12.2010 10:07
Подчёркивание красной линией Syltan Microsoft Office Word 2 16.06.2010 02:21
Как соединить 2 image ломаной линией, обходящей препятствия (другие визуальные компоненты) Zerofill Помощь студентам 0 08.03.2010 00:15
соединить два 3d объекта NewXakep Помощь студентам 1 11.07.2009 11:34