An XControl might be a bit heavy here. It also has a nasty characteristic,
that all normal table properties are gone! Usually, you'll need quite a few
table properties, and you'll need to create them all. Or make one method
that returns the XControls table reference, but that can be tricky (the
returned reference is often invalid, even if it is "fresh").
For the picture part, use a picture control if you want to load different
pictures at run time. If you only want to overlay one picture, use a
decoration. If you want the table to be scrollable, you have a lot of work
to do. You need to program to trim the image when the first cell is
partially hidden. The moment to do this can't be determined properly. Since
there is no "table scrolled" event, you need to do this at each mouse move
event (although you only have to do it when the mouse is down). If the full
table is always shown (not scrollable) it is a lot easier.
I had to do something like this a few times. I chose to use a picture
control for the entire table. If you only need to display the table (the
user can't edit it), it is a lot easier to draw a picture and a table in a
picture control, than to display a picture on top of a table. If it has to
be editable, you can to make your own hit detection, and position a control
on a mouse down event. Give the control key focus, and you can "edit the
cell". On the controls value change, redraw the picture. You can put this in
an XControl as well. Both are not beginners stuff though, but not very
advanced either.
Regards,
Wiebe.