in windows the real caret is used, in linux it is simulated. The LCLIntf winapi functions are a replacement for common used winapifunctions. On windows they are redirected tothe real winapi function, on other widgetsets they are implemented ourselves, but should behave the same.
Note that you cannot set the caret on all controls on linux.