Показать сообщение отдельно
  #3  
Старый 29.10.2018, 00:59
Tech N9ne Tech N9ne вне форума
Прохожий
 
Регистрация: 18.05.2018
Сообщения: 31
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от nixon232
Зачем тебе знать кто и как выделял? у тебя есть две пары координат:
нажима и отжима. по ним и строй квадрат. те что ближе к 0.0 - верх-лево, вторые - низ-право
UP!

Попытался, повозился, отложил...
сейчас вернулся к этому проекту, и мозг уже сломан.
по этому прошу как ребёнку, объяснить, как вычислить координаты прямоугольника, если downX и downY это точки начала, а X, Y точки конца.
Повторю,
имею вот такой код:
Код:
Procedure MouseDown
begin
// устанавливаем флаг нажатия мыши в true
  isDown := true;
  // и запоминаем текущие координаты
  downX := X;
  downY := Y;
end;

Код:
Procedure MouseMove
  // если нажата клавиша мыши, то мы рисуем рамку выделения
  if isDown then
  begin
    Self.Canvas.Rectangle(downX, downY, X, Y);
  end;
Код:
 Procedure MouseUP
// сбрасываем флаг
  isDown := false;
// сохраняем координаты области
  if downX < X then   // Слева направо(вниз)
  begin
     r.Left := downX;
     r.Top := downY;
     r.Right := X;
     r.Bottom := Y;
  end;
  if downX > X then
  begin  // Справа налево(вверх)

   r.Left:=X;
   r.Top:=Y;
   r.Right:=downX;
   r.Bottom:=downY;
  end;

какие координаты вписывать в rect, если выделение было слева на право (вверх), и справо налево (вниз) ???

nixon232, я так и не понял, будь добр, объясни
Реально ребята, я много часов сидел над решением этой проблемы, но только запутал себя еще больше.
Ответить с цитированием