AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung zyklisch auf Form.Canvas zeichnen in iOS
Thema durchsuchen
Ansicht
Themen-Optionen

zyklisch auf Form.Canvas zeichnen in iOS

Ein Thema von Hofix2004 · begonnen am 17. Jul 2020 · letzter Beitrag vom 19. Jul 2020
Antwort Antwort
Hofix2004

Registriert seit: 20. Jun 2020
20 Beiträge
 
#1

zyklisch auf Form.Canvas zeichnen in iOS

  Alt 17. Jul 2020, 18:23
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;
  Mit Zitat antworten Zitat
Hofix2004

Registriert seit: 20. Jun 2020
20 Beiträge
 
#2

AW: zyklisch auf Form.Canvas zeichnen in iOS

  Alt 18. Jul 2020, 08:56
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

AW: zyklisch auf Form.Canvas zeichnen in iOS

  Alt 18. Jul 2020, 12:48
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Jul 2020 um 12:52 Uhr)
  Mit Zitat antworten Zitat
Hofix2004

Registriert seit: 20. Jun 2020
20 Beiträge
 
#4

AW: zyklisch auf Form.Canvas zeichnen in iOS

  Alt 19. Jul 2020, 10:27
@himitsu

Vielen Dank!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 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