Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Anwendung bleibt komplett stehen

  Alt 10. Sep 2007, 15:49
Schonmal ausprobiert es bei einem InvalidateRect() zu belassen und danach nicht ein repaint aufzurufen? Repaint ist eine Kapslung von Invalidate + UpdateWindow() und somit sogar ein doppelter Code.

Auch verhindern das WM_SETDRAW das Zeichnen, aber alle zu zeichnenden Bereiche werden gemerkt und akkumuliert. Von daher sollte das zurücknehmen von WM_SETDRAW ein neuzeichnen auslöen ohne dass du vorher nochmal die einzelnen Elemente invalidieren musst.

Falls nicht, dann würde folgendes reichen:
Delphi-Quellcode:
      //*** enable und force redrawing
      SendMessage(pnBDMBaseForm.Handle, WM_SETREDRAW, Integer(TRUE), 0);
      InvalidateRect(pnBDMBaseForm.Handle, nil, false);

      //*** force update of controls:
      UpdateWindow(pnBDMBaseForm.Handle);
  Mit Zitat antworten Zitat