Подскажите,пожалуйста, какое событие надо обрабатывать и каким образом для того, чтобы рисование на Canvas происходило только при нажатии левой кнопки мыши(если можете то приведите код).
Автор хотел узнать про нажатие левой кнопки. Вот код: ]
Код
var Form1: TForm1; down:boolean=false; //проверка нажатия implementation
{$R *.dfm}
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin {если нажата левая кнопка, то переводим указатель в позицию курсора и меняем значение переменной DOWN} if button=MBLeft then begin canvas.MoveTo(X,Y); down:=true; end; end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin {если левая кнопка нажата} if down then canvas.LineTo(X,Y); end;
ты вдруг отжал кнопку? А ты что, проверил, что отпущена ИМЕННО левая? Может, я в процессе рисования нажал на правую кнопку, чтоб произвести какие-то доп. действия (скажем, отобразить текущие координаты мыши в Caption-е формы), а потом ее (правую же) отпустил. По какому праву это прерывает рисование?
Better Kind
12.11.2007 23:42
Цитата(volvo @ 12.11.2007 19:25)
Ну, ты уж если взялся что-то делать - то делай как положено, а не "через пень - колоду"... С какой радости:
ты вдруг отжал кнопку? А ты что, проверил, что отпущена ИМЕННО левая? Может, я в процессе рисования нажал на правую кнопку, чтоб произвести какие-то доп. действия (скажем, отобразить текущие координаты мыши в Caption-е формы), а потом ее (правую же) отпустил. По какому праву это прерывает рисование?
Принимается замечание. Хотя по поводу доп. действий и манипуляций правой кнопкой - не представляю себе этого. Если правая кнопка не связана с меню, тогда на левой кнопке "висит" основной цвет, на правой - фоновый(дополнительный). При отпускании правой и левой кнопки логичнее прерывать рисование без доп. проверок.
если только настаиваете:
Код
if button=MBLeft then down:=false;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.