Недавно добавленные исходники

•  Animation Loaders  699

•  DeLiKaTeS Tetris (Тетрис)  5 700

•  TDictionary Custom Sort  7 657

•  Fast Watermark Sources  7 348

•  3D Designer  10 555

•  Sik Screen Capture  7 874

•  Patch Maker  8 096

•  Айболит (remote control)  8 157

•  ListBox Drag & Drop  6 951

•  Доска для игры Реверси  100 172

•  Графические эффекты  8 220

•  Рисование по маске  7 613

•  Перетаскивание изображений  6 216

•  Canvas Drawing  6 583

•  Рисование Луны  6 509

•  Поворот изображения  5 684

•  Рисование стержней  4 606

•  Paint on Shape  3 302

•  Генератор кроссвордов  4 291

•  Головоломка Paletto  3 435

•  Теорема Монжа об окружностях  4 254

•  Пазл Numbrix  2 756

•  Заборы и коммивояжеры  3 660

•  Игра HIP  2 469

•  Игра Go (Го)  2 454

•  Симулятор лифта  2 861

•  Программа укладки плитки  2 297

•  Генератор лабиринта  3 021

•  Проверка числового ввода  2 523

•  HEX View  2 931

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Координатная сетка



unit grid_;

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.







Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте