Регистрация
18 Ноя 2012
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Здравствуйте, мне необходимо нарисовать многоугольник в дельфи, но не так, чтобы он рисовался по нажатию кнопки, а так, чтобы левой кнопкой мыши я мог нажимать и ставить соединяющиеся точки, а по нажатии правой кнопки мыши рисование заканчивалось. Весь интернет перерыл уже, но не смог найти то, что нужно мне...(

Помогите плиз
 
надо не рыть инет, а изучить документацию.

по событию onmouse записать координаты в список, или строку (не в массив, так как количество заранее неизвестно)
или объявить большой массив и огорчать пользователя сообщением что можно не более.
"а по нажатии правой кнопки мыши рисование заканчивалось."
не заканчивалось, а а рисовать линии от i к i+1. точке

полезно читать книжки просто, чтобы запомнить русский язык.
 
a: array of tpoint;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

procedure fn;
begin
with image1.Canvas do
begin
ellipse(x-2,y-2,x+2,y+2);
end;
end;
begin
if mbLeft in [Button] then
begin
setlength(a,high(a)+2);
a[high(a)]:=point(x,y);
fn;
end;
if mbRight in [Button] then
begin
setlength(a,high(a)+2);
a[high(a)]:=point(x,y);
fn;
image1.Canvas.Polygon(a);/

end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with image1.canvas do
begin
brush.Color:=clwhite;
rectangle(cliprect);
pen.Color:=clblue;
pen.Width:=4;
brush.Color:=clred;
end;
end;
 
Delphi - это не программа по мечтанию, а инструмент для программирования. Сам берешь и программируешь нужный функционал. Примерно за 2-24 часа сделаешь и получишь незабываемый опыт.
 
Назад
Сверху