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

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



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

с путем для файлов Path: TPath, как это имеет место для Path: TPath группы Shape, однако, рисовать Path: TPathData гораздо менее удобно, чем работать с уже готовыми фигурами Path: TPath.

      Для Path: TPathData работают известные методы – перемещение в точку:

      MoveTo (const P: TPointF);

      и проведение линии от предыдущей точки:

      LineTo (const P: TPointF);

      Для доступа из любого места программы нужно создать глобальную переменную:

      var

      Form1: TForm1;

      Path: TPathData;

      При открытии на OnCreate в Form1 создаем траекторию:

      Path:=TpathData.Create;

      Подготавливаем сцену для визуализаци в OnPaint и Form1:

      with Canvas do

      if (Path.Count> 0) and (BeginScene) then

      try

      Stroke.Kind:=TBrushKind.Solid;

      Stroke.Color:=TAlphaColors. Blue;

      Stroke.Thickness:=2;

      DrawPath (Path,1);

      finally

      endScene;

      end;

      Для рисования полилинии на экране, например при движении пальцем, используем метод OnTouch в Form1:

      OnTouch в Form1:

      case Action of

      TTouchAction.Down: begin

      Path.MoveTo (Touches [0].Location);

      end;

      TTouchAction.Move: begin

      Path.LineTo (Touches [High (Touches)].Location);

      FormPaint(Sender,Form1.Canvas,Form1.ClientRect);

      end;

      Очистить холст можно методами:

      Canvas.Clear (const AColor: TAlphaColor = 0)

      или только область:

      Canvas.Clear (const ARectF; const AColor: TAlphaColor = 0).

      Для прорисовки на поверхности холста графической фигуры существует метод DrawBitmap (константы: ABitmap: TBitmap; SrcRect и Dstrect: TRectF: AOpasity: Single; HighSpeed: Boolean = false): выводится все изображение или его часть (SrcRect в область DstRect). Загружать образ фигуры можно из файла:

      var ABitmap:= TBitmap.CreateFromFile («Путь и Имя файла»);

      для вывода рисунка:

      if BeginScene then

      begin

      DrawBitmap (ABitmap,1,true);

      EndScene;

      end;

      Сохранить настройки холста можно функцией:

      SaveState: TCanvasSaveState;

      Восстановить:

      RestoreState (SaveState: TCanvasSaveState).

      Сохранить и загрузить рисунок в Bitmap можно из Object Inspector или программно:

      ABitmap. LoadFromFile ();

      ABitmap.SaveToFile ();

      ABitmap.SaveToStrem ().

      Как отмечалось, во многих случаях удобнее отображать данные (которые удобно направлять в Memo) компонентом Path: TPathData, не конфликтующим с Path: TPath путем для файлов. Для этого вначале создаем глобальную переменную:

      var Form1: TForm1; Path: TPathData;

      При открытии на OnCreate в Form1 создаем траекторию:

      Path:=TpathData.Create;

      Подготавливаем сцену для визуализаци в OnPaint и Form1:

      with Canvas do

      if (Edit1.Text = «1») and (BeginScene) then

      try

      Stroke.Kind:=TBrushKind.Solid;

      Stroke.Color:=TAlphaColors. Blue;

      Stroke.Thickness:=2;

      DrawPath (Path,1);

      finally

      endScene;

      end;

      Начало рисования ограничиваем Edit1.Text = «1», который контролируем Button.

      Для рисования используем свойство OnPaint для Button:

      procedure TForm1.Button3Paint (Sender: TObject; Canvas: TCanvas;

      const ARect: TRectF);

      var

      P: TPointF;

      i: Integer;

      begin

      P.X:= 0;

      P.Y:= StrToInt(Memo1.Lines [0]);

      Path.MoveTo (P);

      for i:= 0 to Memo1.Lines.Count – 2 do

      begin

      P.X:= i*4;

      P.Y:=