
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.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
|