Thursday, April 05, 2007, 11:45:34 AM, Vinzent wrote:
VH> Sorry, I always forget that most people are not like me and just use VH> subroutine names without caring where they come from, while I'm used to VH> always prefix the unit names to the subroutines and thus simply VH> removing "Windows" from the use clause would not work, because the VH> routines suddenly come from a different place.
VH> Well, my opinion and my experience say you should know which routines VH> you are actually using. I know that since the days I used DisposeStr VH> and the FPC compiled code horribly crashed, because it was the wrong VH> one.
It appears that my way of thinking has been severely affected by using IDEs. When putting mouse over identifier shows where it comes from, prefixing seems redundant :)
VH> I won't judge if FPC is correct here (it's supposed to be Delphi-, not VH> Kylix-compatible), but if Borland decided to move those routines, they VH> didn't do it right neither. ;)
They did not move routines - they just had to implement Linux versions somehow. And they did it in a way that was not breaking existing code.
VH> Well, I'd still suggest to either stick to "System.InitCriticalSection" VH> etc. regardless if the Windows unit is included or not (yes, this VH> actually *requires* you to prefix it), or just use the SyncObjs unit VH> like everyone else out there.
In this particular case I wanted to avoid FCL dependence via using SyncObjs.
Ok, for now I have it fixed. Since Ivo has a large patch pending, I shall stay on...
Best regards,
Sergei