Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#37

AW: Optimierung von Pixel

  Alt 8. Apr 2016, 14:17
Zitat:
Trotzdem sehe ich den Fortschritt .. ist das bei dir nicht der Fall?
Nein beim Analysieren der Daten wird kein Paintevent ausgelößt.
Bei meiner Delphi Version schon. Als Workaround könntest du das Refreshen immer nur dann ausführen, wenn sich wirklich der Progress geändert hat im Vergleich zum vorherigen Durchgang des Loops. Das wären dann maximal 100 Aufrufe im ganzen Loop.
Jup.
Wäre eine Möglichkeit.
Das bringt dir schonmal ne ganze Menge Performance:
Delphi-Quellcode:
Progress := trunc(100 * (BASS_ChannelGetPosition(Channel, BASS_POS_BYTE) / BASS_ChannelGetLength(Channel, BASS_POS_BYTE)));
if (Form2.ProgressBar1.position <> Progress) then
begin
  Form2.ProgressBar1.position := Progress;
  PB.Refresh;
  Application.ProcessMessages;
end;
Ist deine Funktion jetzt schneller oder gibt es keine Unterschiede?
Auskommentieren des SetPixel / Canvas.Pixel Codes beschleunigt die Analyse nochmal deutlich spürbar. Meine Funktion würde den selben Effekt haben, allerdings habe ich das noch nicht getestet.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat