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

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



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

используют Path1.Data.Add

      (или: Image1.AddObject (TEllipse)):

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

      begin

      X:=X+5; // X с шагом = 5 точек

      R.Top:=Path1.Height – StrToInt(Memo1.Lines [i]) // Y

      R.Bottom:=R.Top +3; // Диаметр кружка: 1+3=4

      R. Left:= X;

      R. Right:=R. Left +3;

      Path1.Data.AddEllipse (R); //Рисуем кружок

      end;

      Как видите, рисование в Android не доставляет того же удовольствия, как в Delphi 7. Поэтому гораздо проще использовать фигуры из группы Shape, которые не требует ничего этого и свойства которых можно определять в Object Inspector.

      11.4. РИСОВАНИЕ СРЕДСТВАМИ DELPHI ANDROID

      Основной класс для для графики в Delphi Android – TCanvas (т.н. «холст») модуля FMX.Graphics. В отличие от обычного Delphi рисование средствами Delphi Android, в результате попыток создания мультиплатформенности, оказывается резко усложнено и вначале может вообще ничего не получиться с выводом рисунка на экран, а в особенности с динамическим выводом данных, хотя для последнего существует специальный компонент для вывода графиков TChart.

      Основу рисования составляет Canvas: TCanvas, который внедрен во многие компоненты и обеспечивает рисование на них. Вывод графики лучше осуществлять в рамках события OnPaint, присутствующего у многих компонентов.

      Для оценки цвета можно использовать канал RBG (Red, Blue, Green), максимальное значение 255, у яркости максимальное 240. При переводе в градации серого используется:

      Яркость = 0.6*Зеленый +0.3*Красный +0.1*Синий. Коэффициенты отражают неравномерность чувствительности глаза к разным участкам спектра.

      В Uses следует добавить: System. UITypes.

      Создать цвет, например, для компонента прямоугольник, можно смешав 3 цвета (A: Byte = $FF – прозрачность до 255):

      var

      col: TAlphaColorRec;

      begin

      col. R:= 255;

      col. G:= 255;

      col. B:= 255;

      col. A:= 255;

      Rectangle1.Fill.Color:= TAlphaColor (col);

      Rectangle1.Fill.Kind:= TBrushKind.Solid;

      end;

      Для назначения цвета можно использовать вывод его в 16-ричном формате: $FFF000000 соответствует непрозрачному красному цвету; но удобнее и чаще всего используют TAlphaColor, который использует и 16-речные значения и стандартные цвета:

      var color: TAlphaColors;

      color:= TAlphaColors.Red;//Подсказка выводится после точки

      Предусмотрены также ряд специализированных компонентов на вкладке Color: TColorPanel, TComboBoxColorPanel, TColotListBox, TColorComboBox, TColorPicker и др.

      Рис. 32. Различные компоненты отображения цвета вкладки Color.

      Рисование фигур включает прежде всего описание их свойств внутри BeginScene….EndScene. Так, единственный метод вывода линии ранее:

      DrawLine (P1, P2, 1);

      теперь превращается в целую историю:

      в событии OnPaint основной Form1 подготавливаем сцену:

      constant R: TREctF;

      var

      P1, P2: TPointF;

      x1, y1,x2, y2: Integer;

      color: TAlphaColor;

      Begin

      x1:= 10;

      y1:= 20;

      x2:= 100;

      y2:= 200;

      P1.X:= x1;

      P1.Y:= y1;

      P2.X:= x2;

      P2.Y:= y2;

      with Canvas do

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

      try

      Stroke.Kind:=TBrushKind.Solid;

      Stroke.Color:=TAlphaColors. Blue;

      Stroke.Thickness:=2;

      Canvas. DrawLine (P1, P2, 1);

      finally

      endScene;

      end;

      Для вывода рисунка здесь нужно нажать Button и присвоить Edit1.Text значение «1».