For the last couple months I've slowly been working on a game, written using the latest version of Lazarus.
It's a turn-based deep simulation/strategy game, so I don't haven't really seen the need for advanced animations or particle effects. The map is grid-based, and most information is simply displayed through different menu's.
The contents of every tile on the grid is stored in a simple two dimensional Array that points to different Records I have defined.

I've used Delphi to develop parts of different commercial programs at my job, but I don't really have any experience doing anything that requires graphics, so forgive me complete lack of knowledge in these matters.

So far I've only been using the basic TImage object that comes with Lazarus. I simply print whatever graphics I need onto a TBitmap, either using things like Canvas.FillRect, or copying things from a spritemap using Canvas.CopyRect.
Then I simply use TImage.Canvas.Draw to update the main image whenever the player opens a menu or builds on/modifies a tile.

At the moment this works great, but I'm still worried this will come back to bite me later on during development. Especially if I want to add simple animations later on.
Is this a horrible way of doing things?

Is there a free graphics engine I could use that would allow me to handle my game's graphics in a more efficient manner?
I don't really need anything advanced, since I'm just using 2d sprites, and at the moment the screen doesn't need to update except on player input.

I have a lot more questions, since my understanding of graphics is so low, but I figured I'd start here.
Let me know what you think.


Also, does anyone have any good *simple* tutorials on how to do graphics in pascal(or video games in general), I'd appreciate them. At the moment everything is so new to me I just end up feeling overwhelmed.

Thanks in advance!