Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   zyklisch auf Form.Canvas zeichnen in iOS (https://www.delphipraxis.net/204963-zyklisch-auf-form-canvas-zeichnen-ios.html)

Hofix2004 17. Jul 2020 17:23

zyklisch auf Form.Canvas zeichnen in iOS
 
Hallo,

kann mir jemand weiterhelfen, warum das unter Windows und Android klappt, aber auf iOS nicht?

Auf iOS wird nur das erste OnPaint dargestellt. Der Rest scheint im Speicher des Canvas zu sein, wird aber nicht dargestellt.


procedure TCanvasTestForm.FormCreate(Sender: TObject);
begin
x := 10;
y := 10;
end;

procedure TCanvasTestForm.FormPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
var
Brush : TStrokeBrush;
begin
inc(x,10);
inc(y,10);
Brush := TStrokeBrush.Create(TBrushKind.Solid, TAlphaColors.Black);
Brush.Thickness := 2;
with Canvas do
begin
BeginScene();
DrawLine(PointF(10, 10), PointF(x, y), 1, Brush);
EndScene;
end;
end;

procedure TCanvasTestForm.Timer1Timer(Sender: TObject);
begin
self.OnPaint(self,self.Canvas,rectf(0,0,self.Width ,self.Height));
end;

Hofix2004 18. Jul 2020 07:56

AW: zyklisch auf Form.Canvas zeichnen in iOS
 
Wenn ich ein Label auf das Formular setze und folgendes mache, dann klappt das Zeichnen auch

procedure TCanvasTestForm.Timer1Timer(Sender: TObject);
begin
Label1.Text := inttostr(x);
end;

himitsu 18. Jul 2020 11:48

AW: zyklisch auf Form.Canvas zeichnen in iOS
 
Delphi-Quellcode:
procedure TCanvasTestForm.Timer1Timer(Sender: TObject);
begin
  Repaint;
end;
?


OnPaint/FormPaint ist ein Event welches aufgerufen wird, wenn neu gezeichnet wird ... sowas ruft man eigentlich nie selbst auf.

und da du nie weißt wann und wie oft es aufgerufen wird, gehören dort maximal zeitrelative Berechnungen, aber nicht deine absolute Berechnung, welche demnach in den Timer gehören würde,
Delphi-Quellcode:
procedure TCanvasTestForm.Timer1Timer(Sender: TObject);
begin
  inc(x,10);
  inc(y,10);
  Repaint;
end;
aber wenn das Programm bissl stockt, dann höngt es so oder so, womit eine über die Zeit berechnete Position eigentlich besser/richtiger wäre.

Hofix2004 19. Jul 2020 09:27

AW: zyklisch auf Form.Canvas zeichnen in iOS
 
@himitsu

Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz