![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
рисование [D5]
race1 © (2002-08-30 12:41:00)как бы мне нарисовать на имаге, на которой есть большое изображение (т.е. перерисовка не годится) не то что бы линию, а как в фотошопе линейка - на изображении линия не задерживается, а постоянно перерисовывается от начальной координаты до указателя мышки, притом, что бы имага не мерцала при этом?. как?
race1 (2002-09-06 18:10:00) [1]но изображения-то нет!
lenin (2002-08-30 13:46:00) [2]Она и будет дергаться.
race1 (2002-08-30 13:43:00) [3]мышка дёргается, типа, линию рисует, а изоьражения нету :(
race1 (2002-08-30 13:43:00) [4]мышка дёргается, типа, линию рисует, а изоьражения нету :(
race1 (2002-08-30 13:42:00) [5]мышка дёргается, типа, линию рисует, а изоьражения нету :(
Cr@sh (2002-08-30 12:48:00) [6]Может это тебе поможет:
var
StrPosX, StrPosY: integer;
PosX, PosY: integer;
Down: boolean;
procedure TForm1.I1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if lines.Checked=true then
begin
StrPosX:=X;
StrPosY:=Y;
PosX:=x;
PosY:=y;
Down:=true;
end;
end;
procedure TForm1.I1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if lines.Checked=true then
begin
if Down then
with i1.Canvas do
begin
Pen.Mode:=pmNotXor;
MoveTo(StrPosX,StrPosY);
LineTo(PosX,PosY);
PosX:=X;
PosY:=Y;
MoveTo(StrPosX,StrPosY);
LineTo(PosX,PosY);
end;
end;
end;
procedure TForm1.I1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if lines.Checked=true then
begin
Down:=false;
with i1.Canvas do
begin
Pen.Mode:=pmCopy;
MoveTo(StrPosX,StrPosY);
LineTo(X,Y);
end;
end;
end;
Cr@sh (2002-08-30 12:44:00) [7]Для того чтобы не мерцала используй doublebuffered:=true для компонента на котором находится имэйдж.