Здравствуйте! Мне тут в задаче понадобилось что-то вроде графического редактора, и с первая проблема, с которой я столкнулся. Например надо нарисовать линию. Пользователь выбирает инструмент линию, щелкает на канвасе мышкой и перетаскивает мышку, куда ему вздумается:
| Код | //сначала сотрем прошлую линию PaintBox1.Canvas.Pen.Color:=clBtnFace ; PaintBox1.Canvas.MoveTo(coor_x,coor_y); PaintBox1.Canvas.LineTo(a,b); //а теперь нарисуем новую PaintBox1.Canvas.Pen.Color:=clblack; PaintBox1.Canvas.MoveTo(coor_x,coor_y); PaintBox1.Canvas.LineTo(x,y); a:=x; b:=y;
|
Вроде все удачненько. Но стоит пользователю начать рисовать вторую то при пересечении первой линии, она стирается из-за этой строчки:
| Код | PaintBox1.Canvas.Pen.Color:=clBtnFace ;
|
Вот чешу репу, как можно этого избежать. Есть идея создавать динамический массив и постоянно его перерисовывать, но это ж гон. Может кто сталкивался и знает как это сделать? А то я тут наизобретаю велосипедов... |