Ok...first of all I am still considered a beginner at all this and there is still much I do not know how to do yet.
At the time I first wrote this program (over 1 year ago) it was much easier for me to create 2 plain text files and load one in each side than it was for me to do something much more complicated, using one file for both sides. It was my first experience with writing and retrieving data to/from a file, and only my 3rd program that wasn't some lame book example exercise.
The sorting it currently has is done automatically because I have the sorted property set to true on the lists....and the resorting when you edit an item is done by toggling the sort property off and on again....that's how simply made this is.
Sorted := False; //Toggle Sorted property to resort
Sorted := True;
There are some advantages to having 2 separate lists though....
Before I added the ability to print the ToDo side (which I couldn't do when I first wrote it, since I didn't own a working printer at the time to test it with), you had to open the file in notepad to print it. Having everything as one file would have meant you would be printing a mess containing both ToDo & Done.
Currently if you want to print only Done, you still have to do it from notepad. (might change this)
Having 2 files is also a good idea if you want to export one for another purpose, such as being able to copy & rename the appropriate one to .txt and sending it to someone.
Yesterday I did that with a membership list for my chatroom. The new host of my chatroom wanted to know who was supposed to be given automatic admin privileges. I was able to send her the .don file, renamed to .txt, over MSN. It wouldn't have been so easy if it were all in one file all mixed up with 1's & 0's.
Maybe if I get adventurous, and acquire a lot more programming skills, I may rewrite it from scratch and put it all in one file, but then I would have 2 different projects to maintain, since I like the 2 file system it currently uses and it's very useful to me like it is.
I guess that is one of the problems when you code an application for yourself and release it to the public. Other people don't always like the things you like best about your program.
This originally wasn't even supposed to be a ToDo list program. It was intended to be a feature in another program, and I only released it as a separate one when a friend asked me to. But I am glad I did since it solved a bunch of problems I wouldn't have known how to fix if I hadn't made it a separate .exe file.
I am sorry if I sound defensive, but sometimes when you don't know a whole lot about programming, it can be scary when you share an application you have made and people start asking for features you don't have the foggiest idea on how to do yet.
Ask me again in about 5 years and maybe I'll be able to make the GTD application of everybody's dreams that has every feature everyone in the world wants. But right now I can't....I still have too much to learn.