This is mostly a user experience document. You get to decide if this is the user experience you were trying to achieve.
I have been playing with bits and pieces and decided to take what I learned and apply it to a bigger program. Here is what I'm trying to do:
- Make a new CRC Demo out of Project>New>Windows API project.
- Put a edit control for a file name entry and a button to call up the File Open Dialog.
- Start & Stop buttons to start stop a thread doing the work.
- Progress controls for the table calc and one for progress through the file
- A multi line edit box to display the results for each method: times & CRC values
I have most of the CRC code in a .PPL file from my CRC_Demo3 project. My first thoughts are to open PIDE and select Projects>New>Windows API Project, add some code to the controls, include the CRC.PPL file and I'm done.
I create the project. Main.FRM is created and some controls are added. First problem, almost everything I have created to date with the project generator has the name Main.FRM or Main.PPL. I must remember to change the location of the project in the options when created. I can see some people wanting to keep multiple projects in the same directory. You need to allow users to select the base name of the files when creating the project.
After adding the existing CRC_Demo3.PPL file to the project, I decided the name needs to change. The only way to do it is to remove the file from the project, rename it, and add it back in. Or I could edit the project file and rename the file. You should be able to rename a file, have the name change in the project and rename any open windows from the old name to the new name.
I have some procedures in a PPL file and a FRM file. When I press a button and want a thread proc to start. The thread proc is in the PPL file. How to include the PPL file in a form, so it can get to the thread? To do this the user needs to be able to place directives on the form. Another way to achieve the same goal would be to allow the user to place user functions on the form. Maybe a small invisible button on the form that you can click on in the form builder that brings up a code window that users can place their code into.
Here I've sumarized my 4 points from above.
1. Allow setting the base name for all files when creating a project?
2. Allow changing file names in a project?
3. Able to Include PPL directives on forms?
4. Able to add User Functions to a form?
These are probably bugs. All of this below is with no project open
With a form open, opening the same form again gives 2 instances of the same form. I think it should bring to the top the form already open.
This happened by accident because the form window was on the bottom and I forgot it was there. I'd like to see the form windows be made a child window of the main PIDE window inside the PIDE window frame (like the code windows).
Creating a new form, changing it and saving doesn't put the saved name into the reopen list.
Creating a new form, add a control and you can't compile or run. You get compile and run buttons if you click on a control and open the code window, but I think it is actually trying to do the code in the window and not the form as a whole. It works properly if in a project.
And a request...
I'd like to see a new project type in the Project>New dialog. The new project wizzard would create 4 files The PPL file being the main file for user code and user initializations and it would load the main user interface from a FRM file (a dialog form). The 3rd file would be the #defines from the form. The last file would be a project file. That way the user could use the defines file in their code also.
Maybe a second request...
I'd like to see an option in the form builder to make the #defines list an external file...
This isn't the end of the story, just a good stopping point.
B.
P.S. WOW!




UPDATE: I've played with the options in the form builder and it looks as though the Generate Code option effects the WinMain statement in the code. I thought this would apply to the Dialog Form option. The Dialog Form option didn't seem to have any effect on the generated code.