2021年12月27日 星期一

TCustomCanvas Notifiable Persistent Lock LockCount Unlock TNotifiablePersistent: BeginUpdate UpdateCount

 https://graphics32.github.io/Docs/Units/GR32/Classes/TThreadPersistent/_Body.htm

TThreadPersistent - Graphics32

https://graphics32.github.io/Docs/Units/GR32_OrdinalMaps/Classes/TWordMap/_Body.htm

BeginUpdate() EndUpdate for a UserControl

UserControl  ContainerControl painted WindowsForms  UserControl)

similar to BeginUpdate() - EndUpdate()


https://stackoverflow.com/questions/487661/how-do-i-suspend-painting-for-a-control-and-its-children
class DrawingControl
    [DllImport("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);

    private const int WM_SETREDRAW = 11;
    
    public static void SuspendDrawing( Control parent )
        SendMessage(parent.Handle, WM_SETREDRAW, false, 0);

    public static void ResumeDrawing( Control parent )
        SendMessage(parent.Handle, WM_SETREDRAW, true, 0);
        parent.Refresh();



https://graphics32.github.io/Docs/Units/GR32/Classes/TThreadPersistent/_Body.htm
TThreadPersistent
Hierarchy
TPersistent
   |
TNotifiablePersistent
Lock     LockCount     
Unlock         
In TNotifiablePersistent:
BeginUpdate     UpdateCount     OnChange
Changed         
Create         
Destroy         
EndUpdate
 
https://searchcode.com/file/11603740/uSimpleGraph.pas/
http://objecteda.googlecode.com/
/uSimpleGraph.pas
 TSimpleGraph v1.542                                                         }
   4{  by Kambiz R. Khojasteh                                                      }
   5{                                                                              }
   6{  kambiz@delphiarea.com                                                       }
   7{  http://www.delphiarea.com   


https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Graphics.TCustomCanvas.Lock
Vcl.Graphics.TCustomCanvas.Lock
    LockCount
    TryLock
    Unlock
    Locking Objects

http://theprofessionalspoint.blogspot.com/2013/12/locking-and-unlocking-mechanism-in.html
Locking and Unlocking mechanism in Delphi
The implementation for the lock pattern applied to a class TBag is: (only pattern related code is shown)
This article provides a mechanism to temporarily lock and unlock some aspects of a class. We will discuss locking and unlocking patterns in Delphi with a simple example.

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-lockwindowupdate
Windows GDI Winuser.h LockWindowUpdate function
LockWindowUpdate function (winuser.h)
BeginPaint
GetDC
GetDCEx
Painting and Drawing Functions
Painting and Drawing Overview
WM_PAINT

https://coderedirect.com/questions/594614/multi-threading-delphi-synchronization-using-critical-sections-between-a-timer-a
Multi-threading Delphi synchronization using Critical Sections between a Timer and other threads


沒有留言: