I guess the owner is the form. In that case, you shouldn't free them yourself.
......
If they are created in FormShow then they should be freed in FormClose, and if created in FormCreate then freed in FormDestroy.
Logically, you're right, but any object can be instantiated and destroyed anywhere in the program, not necessarily according to what you said (Create->Destroy, Show->Close).
Furthermore, you can also destroy any object (class, control, or otherwise) belonging to "anyone" by paying attention to two things:
1) Verify that it's instantiated before destroying it;
2) After destroying it, set the instance variable to NIL.
It's not a good programming rule to destroy objects belonging to "others," but technically it's feasible.
Obviously, it all depends on the object's lifetime and visibility, as well as the application's logic.
When in doubt, explicitly NIL the variable that defines the object after destroying it.
JvDBLukupCmboTypeCust.Free;
JvDBLukupCmboTypeCust := nil;
.....