I've put my button icons in a signed gif, and they work fine at runtime.
The problem is at design time, I can't get to see their icons properly.
I have to convert the gifs to ico and place them in a folder referenced by the old UI_ICON registry variable.
Also, as the gifs are 16x16, they are cropped in design time, because I see them as if they where stretched to 32x32 size.
At least it would be enough if I could place the gifs directly somewhere, without converting to ico.
It seems as if oracle had not put any development work in the builder, which is like a direct port from the 6i c/s version.
Since you didn't mention exactly which Forms version you are using, I will guess and assume it is one of the many versions after 6.0.8. The Forms Builder 9.x+ supports ico, jpg, and gif files. It will not however read them from a jar. Therefore, you will need to extract them into a directory as defined by UI_ICON. Also, the files will need to be of the same type (gif, jpg, ico). Mixing formats is not recommended or supported. The format you choose can be defined in UI_ICON_EXTENSION
So for example in your Registry you might have something like this:
UI_ICON = C:\myImagesDirectory
UI_ICON_EXTENSION = gif
Since "gif" is the default, you do not need to set this if using "gif" files.
My forms builder version is 18.104.22.168.0
Your solution works, but it seems that, at least in my builder version, UI_ICON_EXTENSION is neccesary for gif icons, being .ico the default, as it says in the builder help:
UI_ICON_EXTENSION When this environment variable is not set, or is set incorrectly, .ico is the default extension.
Also, the icons don't look like the same in design time, as the color depth seems to be lower than in runtime, but it's good enough to know which icon is what.
Another good thing with the gif icons is that they adjust to your button size, as well as they do in runtime.