LANGUAGE:: Object Pascal/Delphi
OVERVIEW: Extend the built-in Treeview component in Delphi for active data.
DATASET: Data set as described here:
Group Structure: Groupname, equals sign, Itemname, Square Bracket, GreenValue, comma, RedValue, Square Bracket, Space - items repeat within the group. Group ends with a semicolon.
Example, five groups: (Operand1, Operate, Operand2, Result, Error)
(in example Negate is item zero in Operand1 group, Any_Number is item one in Operand1 group…)
Operand1 = Negate[1,1] Any_Number[1,2] One_Period[2,4] Any_Number[3,4] Clear_Entry[0,5] Clear[0,Operate];
Operate = Push_Display[1,1] Add[Operand2,2] Sub[Operand2,3] Mul[Operand2,4] Div[Operand2,Error];
Operand2 = Negate[1,1] Any_Number[1,2] One_Period[2,4] Any_Number[3,4] Clear_Entry[0,5] Clear[0,Operate];
Result = Chain[Operate,1] Equals[Operand1,Operand1];
Error = Error[0,0];
OBJECTIVES
Read in “calculator” data file containing groups and items
Extend Treeview component to support the following:
-Items are elements in a group
-Items move with group in tree and update file
-Items move (within group only) in conjunction with treeview move
-When treeview item is selected
-Draw green line from selected treeview item to treeview item that matches GreenValue (item location number)
-Draw red line from selected treeview item to treeview item that matches RedValue (item location number)
-Down arrow selects next item in treeview
-Up arrow selects previous item in treeview
-Shift+Down arrow moves group or item in treeview down (items move within group only)
-Shift+Up arrow moves group or item in treeview up (items move within group only)
-Shift+Insert adds new item
-Shift+Delete deletes selected item
-GreenValue updates when connected item moves
-RedValue updates when connected item moves
DELIVERABLE:
Full Object Pascal source code that meets the above requirements
Hi there! I have read what you exactly need and I have great experience with Graphical User Interface (GUI) and Delphi. However I would like to ask you a few questions. I do work smart and do not rest until I get the job done. Please feel free to ping me anytime so we can have a detailed discussion. If I can deliver I will deliver in best possible way. Thanks
My portfolio: https://www.freelancer.com/u/AwaisChaudhry?w=f