lucamar, you used a collection of TFrames you did need to mainain yourself?
More or less, yes. I create a frame for each kind of "tab" I need. Frames can be thought (and designed/coded) as "embedable" forms: you create one, put into it whatever controls you need, code event handlers for them, etc.
Then, in your main program, you put a page control, add the number of tabs you need and insert each frame into its corresponding tab. Or you can do it in code, too, which allows you to control which frames/tabs exist at any given time, instead of having all of them all the time and show/hide them when needed.
Basically, it's the same concept as having several forms, only these "forms" (frames) are fully embedable in any other container, be it a real form, a panel, a tabsheet, etc.
For example, suppose you're building a multi-file text editor (see attached image). You can program a frame with a memo, a statusbar and whatever else you want as if it were a single-file editor and make your main program consist simply of a page control and a main menu with handlers/methods to create/destroy tabs, containing a "single-editor" frame, for each opened file. And you can build other frames to substitute search/replace dialogs which you could, for example, embed into a panel, etc., which allows you to have kind of complex "custom controls" to, say, replace dialogs on any application, or build complex forms with common groups of controls without too much work.
We use frames almost everywhere and I found them one of the best additions to the controls palette when they appeared.