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

Delphi FMX TCustomControl


randydom

Вопрос

I've a VCL Component that i want to port it into FMX 

type
TMyVclComponent = class (TCustomControl)

...

procedure TMyVclComponent.MouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
FIsMouseDown: = false;
end;

procedure TMyVclComponent.Paint;
begin
if csDesigning in ComponentState then
with inherited Canvas do begin
Pen.Style: = psDash;
Brush.Style: = bsClear;
Rectangle (0, 0, Width, Height);
end;

TBackground(FBackground).PaintOn(FBitmapPreveiw);

Canvas.Draw (0, 0, FBitmapPreveiw);
end;

My porting progress :

type
TMyFMXComponent = class(TStyledControl)
...
procedure TMyFMXComponent.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
FIsMouseDown := false;
end;

procedure TMyFMXComponent.Paint;
begin
{
How can we port this code part ?
}
if csDesigning in ComponentState then
with inherited Canvas do begin
Pen.Style := psDash;
Brush.Style := bsClear;
Rectangle(0, 0, Width, Height);
end;

TBackground(FBackground).PaintOn(FBitmapPreveiw);

Canvas.Draw(0, 0, FBitmapPreveiw);
end;

How the code inside the Paint procedure can be ported to FMX ?

 

thank you .

Ссылка на комментарий

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

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

Hello,

Something like this:

procedure TFMXControl.Paint;
var
  SourceRect: TRectF;
begin
  inherited;
  if csDesigning in ComponentState then
    with Canvas do
    begin
      Stroke.Dash := TStrokeDash.Dash;
      Fill.Color := TAlphaColorRec.Null;
      FillRect(LocalRect, 0, 0, AllCorners, 1);
    end;

  SourceRect := TRectF.Create(0, 0, FBitmapPreveiw.Width, FBitmapPreveiw.Height)
  FBackground.PaintTo(FBitmapPreview, TRect.Create(0, 0, FBitmapPreveiw.Width, FBitmapPreveiw.Height));

  Canvas.DrawBitmap(FBitmapPreveiw, SourceRect, SourceRect, 1);
end;
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...