Перейти к содержанию
Fire Monkey от А до Я
  • 0

Почему на мобильных платформах у меня не рисуется окружность?


97mik

Вопрос

Пробую нарисовать окружность в заданном регионе на мобильной платформе следующим способом:

procedure TForm1.Image14Paint(Sender: TObject; Canvas: TCanvas;  const ARect: TRectF);
begin
  Image14.Canvas.Stroke.Color := TAlphaColorRec.Red;
  PixelRegion := TRectF.Create(TPointF.Create(100, 100), 20, 20);
  Image14.Canvas.DrawEllipse(PixelRegion, 1);
end;

В Windows всё отображается, а на мобильных платформах окружность не отображается. Подскажите, с чем может быть связано такое поведение.

post-6-0-93337500-1388934272.jpg

Изменено пользователем admin
Изменен текст вопроса для лучшего понимания.
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

В вашем случае вы не задали тип кисти Canvas.Stroke. Более, чем уверен, что на устройстве там стоит TBrushKind.bkNone. Вашу проблему решит задание типа кисти TBrushKind.bkSolid.

procedure TForm5.Image14Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
var
  EllipseRegion: TRectF;
begin
  Canvas.Stroke.Kind := TBrushKind.bkSolid;
  Canvas.Stroke.Color := TAlphaColorRec.Red;
  EllipseRegion := TRectF.Create(TPointF.Create(100, 100), 20, 20);
  Canvas.DrawEllipse(EllipseRegion, 1);
end; 

Хорошая практика отрисовки в FMX полагает, что вы полностью инициализируете все кисти, необходимые вам для отрисовки.

Так же обратите внимание, что канва для формы и всех контролах, размещенных на ней, всегда существует в одном экземпляре. И правилом хорошего тона, является использовать канву, переданную через параметры события отрисовки.

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...