Программирование для Android и работа с датчиками в среде Delphi 11. Виталий Иванович Донцов

Читать онлайн.
Название Программирование для Android и работа с датчиками в среде Delphi 11
Автор произведения Виталий Иванович Донцов
Жанр
Серия
Издательство
Год выпуска 0
isbn 9785006566965



Скачать книгу

rnd;//Истинное значение выводится

      kY:= StrToFloat (Edit2.Text); //Коэффициент Y

      NumberBox5.Value:= NumberBox5.Value+1;//Счет данных

      NumberBox6.Value:= NumberBox6.Value+1;//Счет для цикла

      s:= FloatToStr(NumberBox4.Value*NumberBox5.Value) + '; ' + FloatToStr(NumberBox2.Value); //В Memo истинные данные

      Memo1.Lines.Add (s);

      //Рисуем график не выходя за пределы Path

      x1:= NumberBox6.Value*3;// 3 Точки на 1 значение Х

      y:= rnd*kY;

      if y <= Path1.Height – 5 then //Коррекция Y

      begin

      y1:= Path1.Height – kY*y;

      p.X:= x1;

      p.Y:= y1;

      if NumberBox6.Value> = 119 then //За пределы Х

      begin

      Path1.Data.Clear;

      NumberBox6.Value:= 0;//Новый цикл! С начало

      end

      else

      Path1.Data.LineTo (p) //Рисуем график – линию

      end

      else // Y За пределы графика

      begin

      p.X:= x1;

      p.Y:= 2;

      Path1.Data.MoveTo (p);//Прерывание графика

      end; endend;

      Рис. 31. Регистратор сигналов на базе компонента Path.

      На рисунке представлен вид такого регистратора (в режиме теста – регистрация случайных данных – Random (100) +1) *2).

      Другие фигуры также могут быть использованы для графика: эллипс (как вариант – круг) может быть использована для точечного графика (как и просто точка) с применением Rect координат:

      R.Top:= Path1.Height – Y; // Координата Y, отсчет сверху

      R.Bottom:= R.Top+2;

      R. Left:= X; // Координата Х (в пределах Path. Width)

      R. Right:=R. Left+2;

      Path1.Data.AddEllipse (R); //Добавление очередного объекта

      Аналогично, TPie может быть использован для кругового графика (заполненная цветом – как сектор).

      Для надписей также есть своя фигура TText.

      К сожалению Path: TPath графика конфликтует с Path: TPath пути для файлов! Поэтому одновременно рисовать и сохранять данные не получится; придется использовать рисование: Path: TPathData.

      11.3. Компоненты типа Image и Paint

      Для собственно рисования имеются компоненты PaintBox и Image (обычно для иллюстраций) из группы Shapes, имеющие свойства для рисования: Bitmap, Canvas, Begin Scene и End Scene (внутри которых происходит подготовка к рисованию), для загрузки рисунков – загрузка из файла и из потока: LoadFromFile (директория, имя файлы,) LoadFromStreem (…); сохранить и распечатать рисунок:

      Chart1.SaveToBitmapFile('c:\Папка\btmp.jpg’);

      ShellExecute (0, ’print’, 'c:\Папка\btmp.jpg’, nil, nil, 0);

      В свойстве WrapMode: Stretch: отображать целиком с искажениями по размеру компонента; Center: отображается только центральная часть иллюстрации; Fit: масштабирование без искажений; Original: отображается левая верхняя граница в пределах компонента; Tile: если размер картинки меньше, то выводятся «плитки» картинки.

      Вывод подготовленных ранее рисунков осуществляется с помщью PaintBox1.PaintTo () с указанием Canvas и области выведения: константы Rect; PaintBox1.Canvas. DrawBitmap () с указанием Bitmap и областей Rect начального и конечного переноса.

      Методы рисования позволяют нарисовать элементарные фигуры например, PaintBox1.Canvas.FillRect () – закрашенный прямоугольник с закругленными краями, и др. Доступ к Image, являющимся объектом TCanvas, осуществляется через свойство Bitmap.

      В общем виде вывод рисунка проводится как:

      Объект.Canvas. Метод (параметры): PaintBox1.Canvas.FillRect ().

      Свойство Canvas имеет возможности нарисовать различные