Programing is complex.
Typical RAD application has forms with code in event handlers, datamodules with queries and not a single class.
You can write hundreds of apps like that and learn nothing other than how to use various components and their properties and events.
This is the main problem with Delphi, it's easy and natural to do things the wrong way. RAD = BAD.
Sadly, probably 90% of applications are written like that.
So what's wrong with this approach ? It's missing any architecture. Why is that bad ?
It is not change resistant. When your requirements change you will have to make more changes than you would with a properly designed app.
It is by now well accepted that applications should be structured into layers.
Typical separation of layers is
- Business objects/rules
- Data mapping/persistence
- GUI
With cleanly separated Business layer you can have Win32 GUI, Web GUI, Mobile device GUI...
With cleanly separated Persistence layer you can have the same Business and GUI layers yet switch from say Interbase to Postgress.
It is also much easier to write tests.
Now let me warn you right now, this is a long and hard path to take. It will take take years to master and you will never be completely done.
When you make your app well designed and have these layers set up, and you get it to work, and you excitedly show it to your colleagues, they will give you a strange look and say: Well I just drop this query on the form, execute and it looks the same. But you will know better.
I don't agree with suggestions to learn another language. That is, IMHO, just bypassing the problem. The skill to properly organize and structure your application is language agnostic. Any true OO language is sufficient so no need to learn another one at this point.
I also don't think looking at the source of VirtualTreeView or similar controls will teach you much. You would learn about Winapi, but while useful, that is not going to help with application design.
So to summarize, google up resources about application design, business objects, architecture, OPFs, patterns and testing.