| | 1 | #include "tads.h" |
| | 2 | #include "t3.h" |
| | 3 | |
| | 4 | main(args) |
| | 5 | { |
| | 6 | t3SetSay(&sayValue); |
| | 7 | |
| | 8 | "Hello from main!\n"; |
| | 9 | obj1.sayHello; |
| | 10 | obj2.sayHello; |
| | 11 | obj3.sayHello; |
| | 12 | obj4.sayHello; |
| | 13 | |
| | 14 | redItem.sdesc; "\n"; |
| | 15 | redItem.ldesc; "\n"; |
| | 16 | blueItem.sdesc; "\n"; |
| | 17 | blueItem.ldesc; "\n"; |
| | 18 | "Done!\n"; |
| | 19 | } |
| | 20 | |
| | 21 | class ColorItem: object |
| | 22 | sayValue(val) |
| | 23 | { |
| | 24 | /* substitute color placeholder strings */ |
| | 25 | if (dataType(val) == TypeSString) |
| | 26 | val = rexReplace('COLOR', val, colorName, ReplaceAll); |
| | 27 | |
| | 28 | /* display the value */ |
| | 29 | tadsSay(val); |
| | 30 | } |
| | 31 | sdesc = "COLOR item" |
| | 32 | ldesc = "It's a COLOR item. " |
| | 33 | ; |
| | 34 | |
| | 35 | redItem: ColorItem colorName='red'; |
| | 36 | blueItem: ColorItem colorName='blue'; |
| | 37 | |
| | 38 | obj1: object |
| | 39 | sayValue(val) |
| | 40 | { |
| | 41 | if (dataType(val) == TypeSString) |
| | 42 | tadsSay(val.toUpper()); |
| | 43 | else |
| | 44 | tadsSay(val); |
| | 45 | } |
| | 46 | |
| | 47 | sayHello { "This is obj1.sayHello!\n"; } |
| | 48 | ; |
| | 49 | |
| | 50 | obj2: obj1 |
| | 51 | sayHello { "This is obj2.sayHello (obj2 is an obj1)\n"; } |
| | 52 | ; |
| | 53 | |
| | 54 | obj3: object |
| | 55 | sayHello { "This is obj3.sayHello (obj3 has no sayValue method)\n"; } |
| | 56 | ; |
| | 57 | |
| | 58 | obj4: object |
| | 59 | sayHello { "This is obj4.sayHello\n"; } |
| | 60 | |
| | 61 | sayValue(val) |
| | 62 | { |
| | 63 | if (dataType(val) == TypeSString) |
| | 64 | tadsSay(val.toLower()); |
| | 65 | else |
| | 66 | tadsSay(val); |
| | 67 | } |
| | 68 | ; |
| | 69 | |
| | 70 | preinit() |
| | 71 | { |
| | 72 | } |
| | 73 | |
| | 74 | |
| | 75 | |