Quote Originally Posted by isladogs View Post
I've been using this system with numerous commercial/client/example apps for over 15 years. My forms are carefully planned so its unusual for me to need to deal with a new set of conditions that weren't foreseen at the start
Well, you're better at planning than I am. Most of the stuff I write undergoes so much mutation over time that it eventually bears little resemblance to the original version. To be fair, many of my clients are completely new to database systems, so their initial requirements are vague at best, and my knowledge of their scientific field is also limited, so I don't even know what questions to ask them at first. As time goes on, they learn more about what they can want from a database, and how they can use it in their specific field of research, and I learn more about their research and their scientific field, so I can suggest more useful things than I could when we first met. Many of these apps are single-user jobs, and it's a mutual learning process.

No - because I use certain tag values in the same way in each database where tis idea is used e.g. tag = A - always visible, X = always hidden, M = map controls etc. But as already stated, a descriptive phrase can be used instead if preferred e.g. MAP.
I see. It wasn't clear to me that the letters meant anything in particular, or that you had such a standardized system. I'll have to study the code more carefully to get it clear in my head.

In the past I experimented with using parameter arrays rather than a specified number of arguments. Client feedback was that the arguments approach was preferred so I reverted to that.
Oh, this is accessible to users? I thought it was for only finished products. None of my clients are computer techs and I work alone, so nobody else ever sees my code. But I don't lock the apps - in case I get hit by a truck and they need to hire someone to take over, I want it to be fully accessible to such a person. And I don't care about copy protection. I share my code freely, if it looks to me that anyone else may benefit from it.

The number of arguments can easily be increased from six in the unlikely event that's not sufficient for a particular procedure OR you can just add a second line of e.g. ShowControls True tag values
I suppose since you've been using the system so long, you have a pretty good idea of what you need from it. I just started using the approach I described in the original post, so I have no long-term baseline yet. I like it so far, but I've been surprised before. If I'm still as happy with it a year from now, I'll consider it a mature and reliable approach.

It works for me and many other people. You don't seem convinced. That's fine. Don't use it
I'm neither convinced nor unconvinced - I'm not trying to pass judgement on your approach. I'm grateful that you made it available for me to study, and I'm curious about why you made certain design decisions, and what the positive and negative effects are of those decisions. I did a rough sketch-up of a few forms I'm tuning now, just to see if I could use this. However, I quickly discovered that the stuff I'm working on now has lots of different conditions affecting lots of different combinations of controls, different for almost every form, and there are several dozen forms - one of the few complex, multi-user, client-server systems I'm currently working on. I think if I adopted your approach here, I would have almost as many groups as I have controls, making the grouping approach you describe probably not especially effective for this case. Also, much of the enabling and disabling takes place as the user types - I'm not sure cycling through every control on a form on every keystroke is practical - I'll have to test that, to see if it doesn't bog the system down too much. And I'm still in continuing development - it's not a mature, stable system like you write you have, so who knows what I will eventually end up with.



But it's certainly an approach I'll keep in mind. I can see how it would be useful in different designs than the one I'm working on now.