For my compiler and IDE I use Freepascal (http://www.freepascal.org/) and Lazarus (http://www.lazarus.freepascal.org/) respectively.

I use these because currently, they are the best solution for writing cross-platform code. Something that I wish to do because I use Linux as well as Windows. (there is also the GNU Pascal Compiler that offer as such, but in benchmarks, Freepascal out-performs it in key areas)

I don't use the VCL or create forms in Lazarus, I use it as an IDE for my code and nothing more. It's tight intergration with the Freepascal compiler plus it's code exploring/completion features makes it a good choice for me.

So I create my own windows but I still want to do this in a cross platform way. so I use SDL (http://www.libsdl.org/) along with the JEDI-SDL pascal headers (http://sourceforge.net/projects/jedi-sdl/) which provide me with a way to create Windows in a uniform way that works on the operating systems I want it to, without having to write different code for each OS.

I want to be able to do hardware accelerated 3D as well as 2D so for cross platform, OpenGL is the only option. DirectX and in turn Direct3D are arguably have much better designs and are easier and faster to use (when you know how). So if you're not bothered about Linux or the Mac, that's what I'd have recommend. Although personally because I know OpenGL better, I'll always use it as long as it's still supported.

SDL does a few other nice things for me, it provides sound, mouse/keyboard/joystick input as well as simple texture loading. That coupled with the fact that it supports easy creation of an OpenGL context (what you need to render) it's a big win.

SDLs texture loading doesn't support many formats, so I use the Vampyre Imaging Library (http://imaginglib.sourceforge.net/) for loading my images. it's a native, cross platform delphi/freepascal library that supports many different formats as well as offering various helper functions, image effects and also primative drawing, bitmap blitting etc. These features and the fact it's cross platform make it a no brainer for me.

For loading 3D Models I use my own code. There are a few model loaders out there which offer various features, but none offered all I wanted. I need bone animation, tangent/binormal data for lighting shaders as well stored quaternion data so I didn't have to calculate it after loading. I wrote a blender export script and a hardware skinning model loader for that format. it doesn't support any known model format except my own. I would reccomend using GLscene (http://glscene.sourceforge.net/wikka/HomePage get it from CVS! it's still quite active) or model 3D (somewhere on these forums) both offer 3DS loading (a common 3D format) and milkshape (able to do animation)

For networking I use customized chunks of lnet (http://wiki.lazarus.freepascal.org/lNet) because it offers a non-blocking, cross platform solution. I like to code with threads so for me non-blocking offers better performance for certain things. (I have customized and built a message passing library on top of this) so I'd reccomend lnet but Synapse and Indy are probably a lot easier for beginners with their non-blocking modes.

and that's me for now.