Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: XE5 Android Canvas und Bücher

  Alt 14. Okt 2013, 15:00
So zeichne ich unter FMX (Win) Rechtecke auf einen Formularcanvas.
Vielleicht findest Du da einen Hinweis...

Delphi-Quellcode:
procedure PaintLayoutRects;
var
  I: Integer;
  iRegion: TssRegion;

  procedure FR(R: TssRect);
  begin
    PaintLayoutCanvas.FillRect(TRectF.Create(R.Left, R.Top, R.Width, R.Height),
      0, 0, [], 1, TCornerType.ctBevel);
  end;

  procedure PF;
  begin
    PaintLayoutCanvas.DrawRect(TRectF.Create(0, 0, PaintLayout.Width,
      PaintLayout.Height), 0, 0, [], 1, TCornerType.ctBevel);
  end;

  procedure PR(R: TssRect);
  begin
    PaintLayoutCanvas.DrawRect(TRectF.Create(R.Left, R.Top, R.Right, R.Bottom),
      0, 0, [], 1, TCornerType.ctBevel);
  end;

begin
  if (not Assigned(PaintLayout)) or (not Assigned(PaintLayoutCanvas)) then
    Exit;

  PaintLayoutCanvas.BeginScene;
  PaintLayoutCanvas.Clear(claWhitesmoke);
  PaintLayoutCanvas.Stroke.Kind := TBrushKind.bkSolid;
  PaintLayoutCanvas.Stroke.Color := claLime;
  PaintLayoutCanvas.StrokeThickness := 1;

  PF;
  for I := 0 to PaintLayout.Regions.Count - 1 do
  begin
    iRegion := PaintLayout.Regions.Items[I];
    PR(iRegion.NewRect);
  end;

  PaintLayoutCanvas.EndScene;
end;


Nachtrag: Ach so, Image ...
Das wird sicherlich ständig neu gezeichnet sobald eine Mausaktion triggert.
Insofern kann es sein, dass Deine Ellipse gezeichnet wird, dann aber sofort das Image (das Bild des Image) wieder neu dargestellt wird.
Auf einen Canvas zu zeichnen ist dem Fall nicht der richtige Weg.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (14. Okt 2013 um 15:05 Uhr)
  Mit Zitat antworten Zitat