JclDebug of course. From Jvcl, I use TjvAppStorage, TjvFile/DirectoryEdit and a few others. But in general I try to keep the number of 3rd party components down to a minimum, because I'm afraid to end up with an unmaintained package at some time. That has happened to me before, and even though I always buy the source code, it becomes a pain keeping up.
At work we do use a few JVCL components, a few JCL functions and of course JclDebug for stack traces. In general I do use JclDebug the most. JclDebug.Caller just helped me on Friday to fix the 10 Seattle Update #1 GDI leaks.
We once used the xml parser. It took quite some work to remove the dependencies between the xml parser and the other units, but once this was done, it became our primary xml parser. Later we wrote our own xml parser, because we needed something that was faster.
For me the crucial ones are TJvPageList, TJvTabBar and TJvTabBarPainter.
ReplyDeleteWe use JCL at work. In particular the jcldebug stuff for stack traces, as well as some file io and process utils.
ReplyDeleteSome JCL stuff (basically the same that Asbjørn Heid mentioned) and a handful of JVCL components
ReplyDeleteI can't live without JclDebug.
ReplyDeleteJclDebug
ReplyDeleteJclDebug of course. From Jvcl, I use TjvAppStorage, TjvFile/DirectoryEdit and a few others. But in general I try to keep the number of 3rd party components down to a minimum, because I'm afraid to end up with an unmaintained package at some time. That has happened to me before, and even though I always buy the source code, it becomes a pain keeping up.
ReplyDeleteAt work we do use a few JVCL components, a few JCL functions and of course JclDebug for stack traces. In general I do use JclDebug the most. JclDebug.Caller just helped me on Friday to fix the 10 Seattle Update #1 GDI leaks.
ReplyDeleteWe once used the xml parser. It took quite some work to remove the dependencies between the xml parser and the other units, but once this was done, it became our primary xml parser. Later we wrote our own xml parser, because we needed something that was faster.
ReplyDeleteExpression evaluator, tailored somewhat
ReplyDelete