|
-
Dec 11th, 2018, 09:36 PM
#11
Re: [vb6] Project Scanner
@All, completely rewrote the tool but have not reposted it yet. This is just a follow up. Plan on reposting by this weekend at the latest.
@ChenLin. That is a bug in the program. For now, just test for a null field, i.e., If IsNull(rsLocal.Fields(constFldAttr2)), and then skip that line.
@Eduardo. Thank you for the bug reports -- will be looking at them. Some of the bugs you are reporting, I'm coding for, so I'm interested in why they are failing for you? For example, whenever a Implements is used, the code should recognize the Implemented class events (those that VB forces you to include even if not used) and not report those as zombies. This tells me that in your case, those events are not being recognized as events. Is there any way you can give me a some short examples in a sample project? P.S. I like the idea of allowing user to increase/decrease font size.
^^ Edited. Regarding class public variables -- good one. I'll have to treat them as public properties. In reality, that's what they are.
^^ Also I did find another unique bug in pvProcessWordList that could be part of the problems you are seeing? That word list is a sorted list. In my case, I had "words" in that list alphabetically as rs.Clone and also rsItems.EOF. That routine tries to speed up things by comparing the next word against the previous word. If they are the same, then skip it. For example, let's say in that word list we had "tRect.Left" and then "tRect.Right". Well, when tRect.Left is looked at, tRect is flagged as "used". The next "word" in the list is tRect.Right. Well tRect not searched for again because it was just checked. However, in my case with rs & rsItems, rsItems wasn't checked because the bug only looked at the length of the previous word (rs is 2 characters) and rsItems begins with those 2 characters. Since rs matched because of the bug, rsItems was never searched for and flagged as zombie/unused. This bug can occur when variables referenced in same routine begin with the same letters. In your case, let's say you also have a variable named mTab and that variable is referenced in the same procedure where you use mTabBodyRect. In that case mTab is flagged as used but mTabBodyRect will not be.
The major changes I've done (not yet posted) are:
1. The progress is displayed at the bottom of the treeview and the treeview nodes are dynamically expanded/created. This results in near zero delay between end of parsing the project and the treeview being populated initially.
2. The project allows you to hide/unhide nodes in the validation listing and caches that state inside the recordset if the recordset is saved. Intent is for you to fix items in the validation, then hide them, removing the clutter. If at any time you want to unhide them, you can. Each time you modify the hidden state, you should resave the recordset to persist that state.
3. All known bugs, except the latest by Eduardo, have been addressed and fixed. Even took some of Elroys suggestions: any code displayed by the project is sent to a txt or rtf file and displayed within their default viewers. The project no longer displays any code within itself. Instead of offering a context menu for copying a node caption, another Elroy suggestion, I allow the node to be set to "edit" mode and the user can copy from that what they want; but not allowed to actually modify the caption.
4. Several other enhancements but will talk about those when I repost later this week.
Last edited by LaVolpe; Dec 12th, 2018 at 08:13 AM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|