JwTools Package I've been programming with Delphi since it was first released. But unfortunatly it's really hard to find classes that will teach you how to use it in many schools (I'm sure someone will prove me wrong...), so I had to teach myself a great deal of things. The first thing was component design. So one by one, I sought out a component that I thought needed to be written, and slowly wrote it. Each one built upon the other, until I had a whole "suite" of components (I like that word "suite") that I began to use in my programs. And now I give them to the world.... If I would put these into a time line, they would go something like this: I really didn't like the bevel components, so I decided to make a line drawing one that was... really easy to make. Flush with the power I felt in make a component that actually drew a line, I went to to make the JwSmile component. Yes, what the delphi comminity needed, a component that drew a smilie face with many different styles of smiles and googlie eyeballs. Well, it's rather useless, but I did learn quite a bit from it. Then someone asked me to make a button that allowed you to have wrappable text. That lead me to think about URL links on web pages that "flared" when you moved your mouse over the text, and thus came the "flashclick" button. With that one, I had to learn a great deal about windows messaging (I knew a lot about it from my XWindows Training, but I had more control with XWindows...Bill are you listening?). Then I took a class in access and I asked the teacher if he knew how to make rotated fonts in access. He said it was impossible. So I absolutly had to prove him wrong. I made a label that rotated the fonts (I still don't like how that thing works...ah well), which lead to a TPanel that rotated, and finally an activeX control that I included in access. (I can't belive he gave me a "B" in his class!). To finally round it out, I combined the "flashclick" with the rotated font, and bang! RotatedFlashClick! I have a few more in there, but I'm getting board writting this note... Now, that leaves out one more thing. I was experimenting with pointers and MemoryStreams that are included with Delphi. Very slick stuff. They provide an extreamly fast way to read in files, even binary ones, and parse them out quicker than most others. So I created a wrapper that utilizes the TMemoryStream and parses out the contents in many different ways. The many incarnations that came from this were things like changing the size of the variables due to 16-bit vs 32-bit windows. Also, to make the thing compatable with Delphi 1, I had to use various compiler defines as well as the unit S_HUGE.PAS that allow programs to get around the size of a segment limit of windows 3.X. S_HUGE really isn't neccessary in Delphi 5, but I don't really want to remove it at this time. And finally, that leaves my cat. My cat really has nothing to do with programming, but I think he's a really cute cat, and deserves all of the attension he can get. I give these tools to the public at large at no charge, but also with no warrentee. (That is, I take total credit for any successes, but no blame for anything that goes wrong.) I encourge any enhancements that you may make, but ask that you keep my name in it...and send me a copy as well. I'd love to see my work being used for something. The general idea is that you can use it for free, even to make a commercial program. But what ever you do to these units themselves, MUST ALWAYS REMAIN FREE! So if you make additions to this code, then those additions must be made free. But if you use it in something else, well then you don't have to do anything. Standard GPL system. Thank you for considering me, and enjoy. Remember, only you can make me famous! Joseph Wilcock CoockooClock@cs.com I welcome all email.