Al, I never learned anything by having someone just tell me the answers so I am going to ask you a few questions, and hopefully get you started figuring this out yourself.
Who will be the end user? How will the end user use the application? What level of computer skills does the end user possess? (This is very important in building your GUI.) Will the rubric be broken down into 4 criteria every time or can it be broken down into more or less criteria? What are the common characteristics of each criteria (IE Name, Score, Notes, Date completed, etc...)? Can the criteria have special characteristics? If so, what characteristics do the special characteristics have in common? (Remember, each time you break a subject down to a new category, ie GUI=>Rubric=>Criteria=>Characteristic=>Special Characteristic, you create a new class. The key is to encapsulate each category via the common characteristics.) How will you store the work the user has produced? Can the user stop in the middle of their work and restart later, and at what points? How will the user be able to share the work completed (IE print, email, save to disk) with others (IE Supervisor, Student, fellow teachers, Parents)? That should be enough to get your started. The more questions you ask yourself at the beginning, the less you have to change your code in the end. Good luck. Steve Gaskin ProLink/BK On-Line/Website Dealer Marketing Services, Inc 5401 Elmore Avenue Davenport, IA 52807 Phone: (563) 344-7612 Fax: (563) 344-7728 Email: [EMAIL PROTECTED] ---------------------------------------------------------------------------- This email may contain confidential & privileged material for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you are not the intended recipient please contact the sender and delete all copies. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Alan Colburn Sent: Thursday, June 08, 2006 4:29 PM To: Borland's Delphi Discussion List Subject: Re: Learning OOP (part 4) [warning: moderately long] Since traffic on the list has been light ... What I'd like to do now is to take an application I wrote awhile ago and rewrite it, from the ground up, in a more OOP-centric way. The original app is poorly coded, hard to understand, and in need of a better GUI. I'm looking for a little assistance in how to go about planning the app and its classes. Usually I just create a GUI I like, and start making event handlers; it's time to become better planned. Description: Teachers sometimes grade student papers with the help of a "rubric." Basically, imagine dividing your expectations for an assignment into a list of specific criteria, and then rating a student for how s/he did on each criteria. If you were teaching people Delphi, for example, you might give students an assignment involving solving a problem with an array. One of your performance criteria might be as simple as "You used an array in your program," with choices of "yes" or "no." Or you might have something like "Variable names were self-commenting, adding to code readability," with criteria of "excellent," "good," "acceptable," or "not acceptable." Teachers may optionally give students additional (text) feedback and, of course, ultimately assign a grade. Students get a report about how they were rated on each criteria, any additional comments, and their grade. ... I'll leave out other details. GUI: Upgrading from Delphi 5 to 2006 I saw the addition of the ValueListEditor widget, and think that would be good for the rubric. Performance criteria can go on the left column, and ratings can go on the right column (with a pick list for each row). A memo or rich text box can hold additional comments, and an edit box can hold the final assigned grade. I picture the rubrics themselves stored as string lists, which can be almost directly loaded into the ValueListEditor. Student reports will be saved in other files. Now, here's the thing ... the way all this is coupled, esp. the ValueListEditor and its accompanying key/value text, it's hard for me to think of this as something beyond Form1 with event handlers again. I can practically load a string list directly into the ValueList Editor--it seems like a "business" class method, for example, would just load a string list from a file, and return the string list. And it's hard for me to think in terms of real life objects here ... it seems like there's just the rubric and the person doing the grading. But I continue to hear about--and see for myself!--the advantages of breaking an app into separate classes. Heaven knows, my original app is like a house that was built without a blueprint; it's hard to understand and inefficiently coded. So, how would you think about dividing this app into multiple classes? Thanks, as always -- Al _______________________________________________ Delphi mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi _______________________________________________ Delphi mailing list -> [email protected] http://www.elists.org/mailman/listinfo/delphi

