2023年12月2日 星期六

No flashing windows paint double buffering direct2d paint flickering flash double buffer beginupdate lock multilayer. window ui locked beginupdate lockdraw lockwindowupdate

 direct2d paint flickering flash double buffer beginupdate lock multilayer.

window ui locked beginupdate lockdraw lockwindowupdate

beginupdate
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/Code_Examples_Index

https://en.delphipraxis.net/topic/4768-vcl-handling-of-dpi-changes-poor-performance/

WM_SETREDRAW 
TWinControl.LockDrawing TWinControl.UnlockDrawing
TWinControl.IsDrawingLocked TWinControl.RedrawDisabled
https://delphi.cz/post/TWinControlLockDrawing-a-TWinControlUnlockDrawing.aspx

https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.Controls.TWinControl.UnlockDrawing
TWinControl.LockDrawing  TWinControl.UnlockDrawing
https://embarcadero.github.io/DelphiVCL4Python/reference/delphivcl.WinControl.html
Vcl.Controls.TWinControl.UnlockDrawing     LockDrawing
    IsDrawingLocked ReplaceDockedControl
https://docs.devexpress.com/VCL/dxLayoutControl.TdxLayoutControl._members


https://en.delphipraxis.net/topic/3538-per-monitor-dpi-awareness-how-to-prevent-flickering/
https://blogs.embarcadero.com/the-vcl-lockdrawing-method-in-twincontrol/
delphi embarcadero file class bitmap

 https://www.codeproject.com/articles/12870/don-t-flicker-double-buffer




//LockDrawing
begin
  Screen.Cursor:=crHourGlass;
   TWinControl(SomeOne).LockDrawing;
   TWinControl(SomeOne).Items.Clear;
  try
    for I := 1 to ffffffffff do
       TWinControl(SomeOne).Items.Add('Line ' + (I+1).ToString);
  finally
     TWinControl(SomeOne).UnlockDrawing;
  end;
  Screen.Cursor:=crDefault;
end;

//BeginUpdate
begin
  Screen.Cursor:=crHourGlass;
   TWinControl(SomeOne).Items.BeginUpdate;
   TWinControl(SomeOne).Items.Clear;
  try
    for I := 1 to ffffffffff do
       TWinControl(SomeOne).Items.Add('Line ' + (I+2).ToString);
  finally
       TWinControl(SomeOne).Items.EndUpdate;
  end;
  Screen.Cursor:=crDefault;
end;
///LockDrawing
begin
  Screen.Cursor:=crHourGlass;
   TCustomControl(SomeCC).LockDrawing;
  try
    for I := 1 to 10000 do
    begin
       TCustomControl(SomeCC).Color := clBlue;
       TCustomControl(SomeCC).Repaint;
       TCustomControl(SomeCC).Color := clRed;
       TCustomControl(SomeCC).Repaint;
    end;
  finally
     TCustomControl(SomeCC).UnlockDrawing;
  end;
  Screen.Cursor:=crDefault;
end;
 

No flashing windows paint double buffering

 https://answers.microsoft.com/en-us/windows/forum/all/microsoft-paint-flickers-when-using-it-in-teams/7414ab65-2f22-4a04-8e50-4d18a7878a0a

https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-reduce-graphics-flicker-with-double-buffering-for-forms-and-controls?view=netframeworkdesktop-4.8&redirectedfrom=MSDN
How to: Reduce Graphics Flicker with Double Buffering for Forms and Controls

https://www.codeproject.com/Articles/12870/Don-t-Flicker-Double-Buffer
Part 17 | How to remove Flickering of graphics | Double Buffering | Graphics in C++
https://stackoverflow.com/questions/1954491/stop-flickering

https://stackoverflow.com/questions/24910574/how-to-prevent-flickering-when-using-paint-method-in-c-sharp-winforms

MS Teams - FIX Screen FLICKERING When Screen Sharing
Screen sharing low resolution & flickering colors

Microsoft Teams flashes when the GPU acceleration is disabled
https://appuals.com/fix-screen-flickering-while-sharing-individual-screens-on-microsoft-teams-on-windows-10/
https://www.barco.com/en/support/knowledge-base/4840-microsoft-teams-flashes-when-the-gpu-acceleration-is-disabled
https://www.reddit.com/r/MicrosoftTeams/comments/rbsjjt/screen_flickers_in_teams_meeting/

flicker - Double buffering in delphi not enough - Stack Overflow
https://stackoverflow.com/questions/61122979/double-buffering-in-delphi-not-enough

https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-reduce-graphics-flicker-with-double-buffering-for-forms-and-controls?view=netframeworkdesktop-4.8
How to: Reduce Graphics Flicker with Double Buffering for Forms and Controls

https://github.com/errorcalc/FreeEsVclComponents

delphi begin update No flashing windows paint double buffering
No flashing windows paint double buffering
delphi TPaintBox control BeginUpdate

delphi begin update No flashing windows paint double bufferingNo flashing windows paint double bufferingdelphi TPaintBox control BeginUpdate TPaintBox  BeginUpdate

hdc dc device context  DC Device Context CDC HDC handle Memory DC GetDC  winuser.h
flashing delphi  device context  device context  handle memory
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Graphics.TCanvas.Handle
https://learn.microsoft.com/en-us/windows/win32/controls/image-lists
https://stackoverflow.com/questions/19794785/how-to-handle-wm-erasebkgnd-to-avoid-flickering
Replacing dc getdc  GetDC    ReleaseDC

GetDC    ReleaseDC GetWindowDC
getWindowDC BeginPaint  GetDC    ReleaseDC flashing delphi  device context  device context  handle memory
https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/gdi/display-device-contexts.md
Vcl.Controls device context Replacing  Merging  Drawing
https://stackoverflow.com/questions/31196565/beginner-in-mfc-c-why-does-the-device-context-need-to-create-an-old-font-bitm
winapi - DirectX Resize shows win32 background at Edges - Stack Overflow
https://stackoverflow.com/questions/63096226/directx-resize-shows-win32-background-at-edges
https://learn.microsoft.com/zh-tw/windows/win32/api/winuser/nf-winuser-getdc
GetDC    ReleaseDC GetWindowDC
https://learn.microsoft.com/en-us/windows/win32/gdi/private-display-device-contexts

http://www.delphigroups.info/2/a9/209052.html
TCanvas BeginUpdate and EndUpdate - delphi

delphi TPaintBox control BeginUpdate
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/OnPaint_(Delphi)
https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.Controls.TCustomControl.Paint
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/BeginUpdate_(Delphi)
TImage32.BeginUpdate


sound Waveform paint window controls codeproject

https://www.codeproject.com/Articles/4823/ShowWaveForm
https://www.codeproject.com/Articles/12333/Compose-sounds-from-frequencies-and-visualize-them
https://www.codeproject.com/Articles/4319/Wave-or-Lake-effect-control
https://www.codeproject.com/Articles/1319/MMWaveEditX-Advanced-Wave-File-Editor-Control
https://www.codeproject.com/Articles/4838/WaveControl
https://www.codeproject.com/Articles/21416/Frequency-Analyser-V2-0-Have-you-ever-wondered-wha
https://www.codeproject.com/Articles/22953/A-Synchronized-Volume-Control-for-your-Application
https://www.phon.ucl.ac.uk/resource/sfs/rtspect/

https://stackoverflow.com/questions/9486712/real-time-graph-drawing-waveform
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/graphics-and-drawing-in-windows-forms?view=netframeworkdesktop-4.8&redirectedfrom=MSDN
https://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx

https://www.codeproject.com/Articles/37296/RCM-v1-4-Theming-library-Customize-the-Appearance
https://www.codeproject.com/Messages/999292/NativeWindow-disposing-on-WM_DESTROY.aspx?display=Mobile
https://www.codeproject.com/Messages/627871/Draw-Sound-wave
https://www.codeproject.com/Articles/15786/Fundamentals-of-Sound-How-to-Make-Music-out-of-Not

https://www.codeproject.com/Articles/7906/A-simple-C-Wave-editor-part-1-Background-and-analy

https://www.speechandhearing.net/
Speech and Hearing Institute NewsNew web applications for Speech science and Phonetics