Now that all the Organizing functionality is finally done, I have a few user interface functions that are worthwhile completing now, as they will give me more tools to make it easier for me to finish off the Everything Report. Since the last thing I was working on was the history list for Instant Organize, I might as well work on the other functions using history lists while that’s fresh in my mind.
First is the Find Tool to simply search for the next or previous occurrence of a string. I’ve already programmed that, but don’t have the history list part of it so that the last 10 or so searches can be easily selected.
There were a few user interface concerns with this. I could include a search box on my toolbar, where the user enters the text to search for. But I was surprised that very few programs do this. Better is just a dropdown list from the toolbar and the standard find form that most programs use, plus a find history popout in the menu for one added way. (What Windows program is any good unless there are at least 3 ways of doing everything? - sarcasm). So what I already had was good.
Some programs have the find history available in the standard find form as a dropdown list. I spent some hours looking for ways I might enhance the standard find form to do this, and it is not easy. I’ll wait until I upgrade my version of Delphi (which might have that feature) before I look at that again.
Then I had a little bug leftover from when I first implemented my Find Tool, and that was from several years ago. If you search in one direction for some text, and then change directions and search again, it stays at the same place for the first search in the opposite direction. This is the functionality that the RichViewEdit component provides. The cursor position after a forward search is left after the found text, so reversing it finds the same text, and the equivalent happens the other way.
I posted a message to the RichView newsgroup, but still had a desire to find the solution myself. I took my RichView 2 inch binder (bursting at its seams) with my notes and hints and tips in it, and poured through it. Eventually, I figured out in about 6 lines of code, how to reset the cursor position to the correct spot before a search. It feels good to squash that one.
Find Tool almost completed. Can increment my progress.