I'm also a new 6 user who has also experimented with 7. It took me weeks to refine my technique for capturing object names reliably so they continue to be found by TC after restarting the app or rebooting the machine. Any time you can reduce the object names to the minimum necessary, it helps. The AQA people here can help a lot more than I can, just responding to the same desperation you have, because I've been there. There are options in the Engines->Recording section which attempts to help with this problem. Even with "record short names when possible" I've had to manually edit object names to things like:
w1 = p1.Window("Afx:00400000:8:*", "*").Window("XTPDockBar", "xtpBarTop").Window("XTPToolBar", "The Ribbon");
Note the Afx...
If the long names you are capturing are at the end of the name, stars work well.
Also, I will record several passes over the same control and observe the differences. If I get a diff on each try, I attempt to manually edit the control to one which is repeatable over time. This is a long-tedious process for me which after refining for weeks has produced objects which are seen every time now.
For instance, the following worked for weeks then stopped:
p1 = Aliases.Sys.SLClient1;
w1 = p1.Window("#32770", "Starlight");
if(w1.WaitProperty("VisibleOnScreen", true, 1000))
...
This had to replaced by:
if(Aliases.Sys.SLClient1.Window("#32770", "Starlight").Window("Button", "&No").WaitProperty("VisibleOnScreen", true, 1000))
...
This is a dialog box. Unfortunately, using both TC7 demo and Enterprise, Seven has even more trouble with our app than six. I've not been able to capture ANY object names which will play back even once. Note: You shouldn't have to immediately "Save" the unit in which you record the interaction. You can immediately play back the script thus capturing many temporary events without harming an earlier save of a working portion while you experiment.
-Pv-