AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey - ungültige Zeigeroperation

Ein Thema von blawen · begonnen am 16. Feb 2014 · letzter Beitrag vom 26. Feb 2014
 
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#10

AW: Firemonkey - ungültige Zeigeroperation

  Alt 20. Feb 2014, 20:54
Deine Lösung unterscheidet sich von meiner Lösung durch das Aufrufen von Sleep.
Nein, Du hast noch einen zusätzlichen Prozedur-Aufruf und im Else-zweig einen möglichen Thread-Aufruf.

BTW Die Abfrage ist überflüssig denn der Setter prüft schon, ob sich der Wert ändert und löst nur dann ein Repaint aus:
Delphi-Quellcode:
  if (Image1.Width <> Image1.Bitmap.Width) or (Image1.Height <> Image1.Bitmap.height) then begin
    Image1.Width:=Image1.Bitmap.Width;
    Image1.Height:=Image1.Bitmap.Height;
  end;
Das stimmt zwar, dass beim Setter Repaint nur ausgelöst wird, wenn die Bitmap sich im Ausmaß geändert hat, aber es werden davon unabhängig IMMER beim Setter noch andere Aktionen für das TImage ausgeführt, die letztlich überflüssig sind.

Ich habe das hier gerade mal getestet, auf 1 Mio Durchläufe macht das ca. 200 MS Unterschied aus. Nun gut, ist nicht die Welt hier. Aber es gibt andere Beispiele wo sich der (überflüssige) Aufruf von Settern deutlich mehr auf die Performance auswirkt. Deswegen habe ich es mir angewöhnt, Setter nur aufzurufen, wenn es wirklich notwendig ist.

Geändert von Harry Stahl (20. Feb 2014 um 21:09 Uhr)
  Mit Zitat antworten Zitat
 


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 04:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz