Показать сообщение отдельно
  #12  
Старый 22.06.2014, 21:44
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
ведь x y значения моего клика?я их не задал так как это мой клик в любом месте.есть ли процедура которая при клике определит координаты?и если есть значит можно им присваивать значения,а потом считать?
вы уж извините если для вас это просто,я только пытаюсь вникнуть.если не реально,значит буду другой метод пробовать
Что-то не понял вопроса. Чем вас не устраивают координаты мыши в событии OnMouseDown?

А вот, примерно так можно реализовать рисование линии:
Код:
unit Unit27;

interface

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

type
  TForm27 = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  private
    ClickPos, CursorPos: TPoint;
  end;

var
  Form27: TForm27;

implementation

{$R *.dfm}

procedure TForm27.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 ClickPos := Point(X, Y);
 CursorPos := ClickPos;
 Canvas.Pen.Color := clRed;
 Canvas.Pen.Mode := pmNotXor;
 Canvas.Pen.Width := 3;
end;

procedure TForm27.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 if ssLeft in Shift
 then begin
      Canvas.MoveTo(ClickPos.X, ClickPos.Y);
      Canvas.LineTo(CursorPos.X, CursorPos.Y);
      CursorPos := Point(X, Y);
      Canvas.MoveTo(ClickPos.X, ClickPos.Y);
      Canvas.LineTo(X, Y);
      end;
end;

procedure TForm27.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 Canvas.Pen.Mode := pmCopy;
 Canvas.MoveTo(ClickPos.X, ClickPos.Y);
 Canvas.LineTo(CursorPos.X, CursorPos.Y);
end;

end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием