Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
unitgrid_; interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type
TForm1 = class
(TForm) procedure
FormPaint(Sender: TObject); private
{ Private declarations } public
{ Public declarations } end
; var
Form1: TForm1; implementation
{$R *.DFM} procedure
TForm1.FormPaint(Sender: TObject); var
x0, y0: integer; // координаты начала координатных осей dx, dy: integer; // шаг координатной сетки (в пикселях) h, w: integer; // высота и ширина области вывода координатной сетки x, y: integer; lx, ly: real; // метки (оцифровка) линий сетки по X Y dlx, dly: real; // шаг меток (оцифровки) линий сетки по X и Y cross: integer; // счетчик не оцифрованных линий сетки dcross: integer; // количество не оцифрованных линий между оцифрованными begin
x0 := 30; y0 := 220; // оси начинаются в точке (40,250) dx := 40; dy := 40; // шаг координатной сетки 40 пикселей dcross := 1; // помечать линии сетки X: 1 - каждую; // 2 - через одну; // 3 - через две; dlx := 0.5; // шаг меток оси X dly := 1.0; // шаг меток оси Y, метками будут: 1, 2, 3 и т.д. h := 200; w := 300; with
form1.Canvas do
begin
cross := dcross; MoveTo(x0, y0); LineTo(x0, y0 - h); // ось X MoveTo(x0, y0); LineTo(x0 + w, y0); // ось Y // засечки, сетка и оцифровка по оси X x := x0 + dx; lx := dlx; repeat
MoveTo(x, y0 - 3); LineTo(x, y0 + 3); // засечка cross := cross - 1; if
cross = 0 then
//оцифровка begin
TextOut(x - 8, y0 + 5, FloatToStr(lx)); cross := dcross; end
; Pen.Style := psDot; MoveTo(x, y0 - 3); LineTo(x, y0 - h); // линия сетки Pen.Style := psSolid; lx := lx + dlx; x := x + dx; until
(x > x0 + w); // засечки, сетка и оцифровка по оси Y y := y0 - dy; ly := dly; repeat
MoveTo(x0 - 3, y); LineTo(x0 + 3, y); // засечка TextOut(x0 - 20, y, FloatToStr(ly)); // оцифровка Pen.Style := psDot; MoveTo(x0 + 3, y); LineTo(x0 + w, y); // линия сетки Pen.Style := psSolid; y := y - dy; ly := ly + dly; until
(y < y0 - h); end
; end
; end
.