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

Лидеры

Популярный контент

Показан контент с высокой репутацией 22.07.2020 во всех областях

  1. Если вы хотите на чем-то рисовать, не надо портить стены, возьмите бумагу, холст там.. Специально придуман PaintBox именно для ваших целей. Но для демо ровно то же самое вместо PaintBox.OnPaint сделал на Form.OnPaint Работает одинаково, на windows и android. Уверен, что ровно так же все будет на всех остальных ОС. type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); private FCrd: TPointF; public end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FCrd := PointF(X,Y); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Invalidate; end; procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); begin Canvas.Fill.Color := TAlphaColorRec.Wheat; Canvas.FillRect(rectf(FCrd.X, FCrd.Y, FCrd.X+100, FCrd.Y+100), 0,0,[], 1); end; там в проекте еще дофига разных странных решений и ошибок. Но это уже оффтоп...
    2 балла
  2. Лучше TPaintBox или TShape вообще лучше не делать - размер холста задаётся автоматом в зависимости от размеров контрола переопределите функцию GetDefaultSize: TSizeF Вы контрол рисуете полностью сами, значит inherited тут не надо А вообще - посмотрите исходники TCircle-TEllipse-TShape - всё станет намного понятнее.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...