Isn't it also possible in Access to create a new object definition (eg ImageSlideable) that has the same properties as the Image object (inheritance)?
I would like to show a label under the image for the FloorComponents where IsTable=TRUE.
Not sure what you mean here, but unlikely. Access is not really designed for this kind of graphic form manipulation. You are pretty limited. You never want to create controls on the fly in a runtime environment. So with concepts like this you start with a bunch of existing hidden controls in Access.
However, there is another type of form and controls that you can use in Access. There is also the MS Forms and MS Form controls. This is the same UserForm used in Excel. It can do dynamic controls and may be a better option for something like this. If I find some time I will see if I can redo this. This would give you more options
This example is a tree view made with a MS Forms userform. This is some extremely advanced code (I use it not build it).
Hi, Before I write my own nested nested nested loop, surely someone has something out there already.... I need to list all the files in a single 'base' folder, which includes subfolders of the base folder. and subfolders of the subfolder's subfolders. The nesting of the subfolders is assumed...
www.access-programmers.co.uk
You can build a many thousands of node tree and all the pieces are just textboxes, labels, and lines all created at runtime.
Better than that would be to build a Visual Studio front end, if you are a good coder. You can still have the backend in Access or switch to something like Sql Server. For this you can use Sql Server Express for free and VS for free. You can write in VB.NET if familiar with VBA. With VS you can build a User Control. Then you can add your control to a form and it could be composed of an image and label that work together. Again you can create these at runtime.
Access does not support inheritance. If it did I could have a MoveableImage class which is generic. Then i could create a MoveableFloorComponent which would be based on the generic MoveableImage. I could then add unique properties to this class such as FloorComponentID, AssociatedLabel, IsTable, NumberofSeats, etc.
So the techniques used in this demo are a little kludgy, but that is what you are limited to in Access. Instead of inheritance you build a composite class, a class that has properties that are other classes. One or more of those properties are access controls.
This demo is in response to a recent thread on creating "custom controls" https://www.access-programmers.co.uk/forums/threads/is-it-possible-to-create-custom-controls.320996/ Unlike other development environments access does not have a way to make a user defined or custom control. However, but...
www.access-programmers.co.uk
In the above example you have a several buttons that are properties of the navigation control class. The class then makes them seem to work as a single user control.
If you had real custom user controls, dynamic controls, and inheritance you could make something much better.
Is it therefore not possible, as soon as I click on a FloorComponent, to create a new ImageSlideable object and place it on the grid?
I went away from the grid idea, because of flexibility and not knowing all of your requirements. However, that may be a better way. If your form is "gridded" out with a set amount of image controls you could hide them all. I think then I would get rid of the drag and drop and use the left and right click of the mouse. When I right click a custom menu control appears with your table images shown in the menu. This would make it easy to delete or change the assigned floorcomponent. I think that would be easier than dragging and dropping. If I get time I will demo. Then you simply show or hide the image control. There are some advantages using the grid as you originally had it.
However in the current design you can just resize the image controls to fit more into the given space. With the grid idea it will be hard to resize. If you need more object in either horizontal or vertical you have to redesign the grid.