It replaces the contents of the system cursor specified by the id parameter with the contents of the cursor specified by the hcur parameter and then destroys hcur.
That means you have to re-load, or make a copy of, the cursor every time you want to call SetSystemCursor()
.
Also keep in mind that this will only replace system cursors, not user-defined cursors that are manually assigned to the VCL's TScreen::Cursors[]
property after app startup.