Odbiegnę troszkę od wątku. Ja miałem problem z kodem napisanym pod Windows 7, gdzie kompilował się i smigał, a w XP działał dziwnie.
Jakoś mnie to nie dziwi – w końcu te systemy bardzo wiele różni. Kod skompilowany pod Windows XP będzie działał na wszystkich późniejszych systemach (jeśli się nie stosuje dziwnych technik), natomiast w drugą stronę niekoniecznie.
Mój CTCT pisałem na WinXP w Lazarusie i działa perfekcyjnie na WinXP, Win7 i Win10 – absolutnie żadnych problemów. Tyle że pisałem go w Lazarusie, a nie w Delphi.
Xp był tak szlachetny, że nie reagował na pewne polecenia kodu tak jak pod Windows 7.
Nie dorabiaj do tego wszystkiego jakiejś dziwnej, magicznej otoczki – skoro program nie działał prawidłowo, to tylko dlatego, że nie posiadał lub nie wspierał funkcji, które zostały dodane w kolejnej wersji systemu.
Jeśli miałbym pisać program, który by miał być wspierany na systemach od WinXP wzwyż, to kod dla WinXP kompilowałbym na WinXP, a dla późniejszych systemów na późniejszym systemie (np. na Win10). Dla mnie takie podejście jest sensowne i dzięki temu nie miałbym żadnych kłopotów z deweloperką. A że lapka z legalnym WinXP można kupić za kilka stówek, to warto z takiej opcji skorzystać.
Tyle że dla kogoś tworzącego oprogramowanie w Lazarusie, system to żaden problem (w końcu wsparcie sięga całej linii NT oraz masy innych platform), ale dla użytkowników innych IDE takie podejście może być nieosiągalne – np. najnowszego VS na WinXP nie zainstaluje, głównie ze względu na wymaganą przez niego wersję .NET (i pewnie wielu innych wymogów).
Reszty nie skomentuję, bo to nie po polsku napisane.