Цитата:
Сообщение от 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, я так и не понял, будь добр, объясни
Реально ребята, я много часов сидел над решением этой проблемы, но только запутал себя еще больше.