Модул с интерактивни графични подпрограми за чертане
| Информационни технологии | 2009-12-04 | 63 сваляния |
{ Модул с интерактивни графични подпрограми за чертане }
{ - допълнете го сами! }
unit Draw_Un;
interface
procedure DrawLine(var x1, y1, x2, y2:integer);
implementation
uses Graph, Mouse_Un;
procedure DrawLine(var x1, y1, x2, y2:integer);
{ Изчертава отсечка, докато е натиснат левият бутон на мишката.}
{ Използва XorPut за постигане на ефект на разтягане на }
{ отсечката. След отпускане на левия бутон отсечката }
{ се изчертава окончателно с CopyPut. }
var OldX, OldY : integer; { Съхраняват предишните координати }
{ на втората точка на отсечката, така че повторното }
{ изчертаване на отсечката с XorPut да я изтрие. }
begin
while not MouseButtonPressed(LeftButton) do;
{ Изчаква се ляв бутон }
GetMouseCoords(x1, y1); { Определят се координатите на }
{ мишката => начална точка на отсечката }
SetWriteMode(XorPut);
MoveTo(x1, y1);
OldX := x1; OldY := y1;
while not MouseButtonReleased(LeftButton) do
{ Влачене на мишката }
begin
GetMouseCoords(x2, y2); { Крайна точка на отсечката }
if (x2 <> OldX) or (y2 <> OldY) then
begin
HideMouse; { Винаги се скрива мишката преди чертане }
Line(x1, y1, OldX, OldY); { Изтрива се старата отсечка }
Line(x1, y1, x2, y2); { Чертае се новата отсечка }
ShowMouse; { Показва се мишката }
OldX := x2; OldY := y2;
end;
end;
{ След отпускане на бутона - окончателно изчертаване }
SetWriteMode(CopyPut);
HideMouse;
Line(x1, y1, x2, y2);
ShowMouse;
end;
end.
Тагове от реферата: подпрами, интераивни, ертне, грани, нтеакти, подпрограми, модул











