Post

Porting Checkers Solitaire to PocketPC...

… wait… don’t get too excited. I’m probably not going to do it. Why?

Well I was all excited and thought that it would be a great opportunity to see what work was involved in taking a windows application that was already resizable down to the screen size of a PocketPC device. It shouldn’t be too hard I thought. Well, one of the things I did was created a Board class that contains all of the drawing for the board and game pieces. First thing I was shocked to discover. There’s no support for System.Windows.Forms.UserControl. I thought, OK, no problem I just build it as a System.Windows.Forms.Control. Then the ugly truth set in. ALL of the following are unavailable:

  • System.Windows.Forms.UserControl.SetStyle
  • System.Windows.Forms.UserControl.DisplayRectangle
  • System.Drawing.Pens
  • System.Drawing.PointF
  • System.Drawing.Graphics.FillPath
  • System.Drawing.Graphics.SmoothingMode
  • System.Drawing.Drawing2D.GraphicsPath
  • System.Drawing.Drawing2D.PathGradientBrush
  • System.Drawing.Drawing2D.LinearGradientBrush

I could make the game pieces flat (like they were originally). I could probably determine the size of the display. I could probably not concern myself with some possible flickering (the screen size is pretty small, so probably not a problem.). As you can see, I could probably work around the missing functionality, but this is just where I started. What else am I going to run into?

For right now, I’ll just focus on improving the Windows version. I do plan on releasing the source; however, if you feel up to the task, contact me and I’ll be happy to share the source with someone willing to port it to PocketPC. I’ve got a lot of other things I’d rather be doing ;-)

On a slightly different subject, I had someone stating that you shouldn’t use the Microsoft.VisualBasic reference since it’s not supported on all platforms (which is only partially true, some methods are while others aren’t… it’s not an all or nothing sort of thing). What about of the above classes/methods? Should they be avoided in Windows development for the off chance that you might want to take the application to a PocketPC?

This post is licensed under CC BY 4.0 by the author.