Results for "Author: grigri"
To judge from some recent submissions, some people forget their variables! This is my take on how to avoid this, by making an IDE addin that shows a list of your private variables when you press a hotkey (Ctrl+m). It's not perfect, but it could be a good starting point for other IDE enhancements, if anyone's interested :)
The VB IDE's intellisense features really are a godsend. However, a few omissions in its conception are a bit annoying. For example, when you are doing a Select Case statement with an enum value, you would expect the intellisense to pop up a list box of all the enum values, like it does if you were in an If statement. That's exactly what this add-in does. It adds this functionality to the IDE. I have seen several ideas of how to get around this limitation, but none that take it this far. It's not really surprising that no one else has done it. The objects add-ins get to play with to query and manipulate the code conveniently ignore the existence of Enums, totally. So you really have to do it the hard way - parsing the strings until you find the right one. If none is found then it falls back on the typelibs the project references, hoping to find it there. I'm not going to delve into a detailed description of how the parsing system works, because it's really not that complicated. It's just long, annoying, and with lots of pitfalls to watch out for. The parsing code itself could be is very useful to anyone wanting to parse VB code, for any reason. Little gems like GetModuleEnums() or GetProcParams() could prove themselves handy in any number of situations. I'm not saying the code is bug-free, because it almost certainly isn't. It does however work in every circumstance I have tested, and has yet to crash the IDE. A lot of improvements could be made to this code. Caching the parsing results would dramatically improve search speed, and the parsing algorithms themselves could be vastly accelerated. Still, it works. Here's a list of exercises left "for the reader" :) * Improve the parsing algorithms, possibly by using array pointers instead of string manipulation * Cache results so they don't have to be repeated every time * Extend the concept to popup a list of labels when the user types "Goto " or "GoSub " * Implement sorting in the list box [as an option, as it's not always appropriate] * In the enum pop-up box, check which values have already been checked for in the Select Case statement, and draw them in grey, or strike through, or something. Anyway, have fun, enjoy the code, and don't forget to send me your comments [and your vote :) ] If you use any of the code, please let me know [I won't mind, honest, but I'd like to be informed, for my ego's sake if nothing else]. grigri
This program takes a bitmap image and applies a bevel effect to it, adding hilights and shadows to make it appear 3-D. The direction and elevation of the light can be changed, as can the size of the bevel. Includes a "debug" mode which shows the process step-by-step (see screenshot) Some of the calculations have been converted to integer calculations for speed. Others still use floating-point, this is one future optimization that I might do.
Normally when you open a non-project VB-associated file such as a form (.frm), class module (.cls) or standard module (.bas), VB creates a new project and adds that component to it. I've never found this functionality useful, and on occasion it's annoying. This Add-In detects when components are loaded directly, and tries to find the associated project. If it succeeds, it loads the project and then displays the component you loaded - a much more useful way of doing things!
Purpose: Allows customization of the icons displayed in the VB Project Explorer window. Icons can be customized on a global level (eg all form icons) or on an individual per-component level. I personally use it for visually separating collection classes, interfaces and normal classes. It allows 32-bit colour icons to be used, as opposed to VB's standard 16-colour ones.
Playing multiple sounds simultaneously is not an easy task, especially in VB. Most VB applications (and games!) that use sound use the PlaySound() API function [which only allows one sound at a time]; others resort to DirectX or third-party DLLs such as BASS. This project is a first step to ending all that, presenting an API-only method. _________________________________________________________ I don't know if it's compatible with VB5, any feedback on this would be appreciated. _________________________________________________________ Includes an extensive ReadMe file, full demo and clean, commented code.
This VB6 Add-In gives you a bunch of special options for the IDE Project Tree. All options are configurable through a control panel (access through the AddIns menu). While there are a lot of enhancements, my absolute favorite is the ability to re-order the items in the tree. ----------------------------------- Updated : fix for the SDI mode + other bits
This code creates a semi-transparent reflection of your form which shimmers in realtime. The screenshot shows the basic idea, but it looks much better animated! It uses the UpdateLayeredWindow() API, so will only work on 2k/XP. I have only tested it on XP. It can use quite a bit of CPU (especially while moving or sizing the form) but could be a nice feature on an about box or something. Parts of the code are optimized, others are not. It could easily be improved upon, and I welcome any suggestions you might have. The effect subclasses your form. To keep the code simple, I have not used ASM-thunking as I usually do, so if you run it in the IDE: DO NOT press the stop button, and DO NOT try and debug-step through the subclassed WindowProc. If you avoid doing this it will run in the IDE quite nicely. There is one "feature" that occurs when the form is near the left edge of the screen : the wave is shunted to the right. I don't know why, if you do, tell me! Some routines were adapted from the vbaccelerator article at http://www.vbaccelerator.com/home/vb/code/libraries/Graphics_and_GDI/Drop_Shadows/article.asp
This is a Shell Extension (Icon Handler) for VB files, written in VB. It allows you to display different icons in explorer for project and form files, depending on their type - very useful for opening the correct project. The code is quite simple, and well-commented. Also included are replacement icons for the relevant VB files, in multiple formats up to 48x48 in 32-bit colour.
To judge from some recent submissions, some people forget their variables! This is my take on how to avoid this, by making an IDE addin that shows a list of your private variables when you press a hotkey (Ctrl+m). It's not perfect, but it could be a good starting point for other IDE enhancements, if anyone's interested :)
The VB IDE's intellisense features really are a godsend. However, a few omissions in its conception are a bit annoying. For example, when you are doing a Select Case statement with an enum value, you would expect the intellisense to pop up a list box of all the enum values, like it does if you were in an If statement. That's exactly what this add-in does. It adds this functionality to the IDE. I have seen several ideas of how to get around this limitation, but none that take it this far. It's not really surprising that no one else has done it. The objects add-ins get to play with to query and manipulate the code conveniently ignore the existence of Enums, totally. So you really have to do it the hard way - parsing the strings until you find the right one. If none is found then it falls back on the typelibs the project references, hoping to find it there. I'm not going to delve into a detailed description of how the parsing system works, because it's really not that complicated. It's just long, annoying, and with lots of pitfalls to watch out for. The parsing code itself could be is very useful to anyone wanting to parse VB code, for any reason. Little gems like GetModuleEnums() or GetProcParams() could prove themselves handy in any number of situations. I'm not saying the code is bug-free, because it almost certainly isn't. It does however work in every circumstance I have tested, and has yet to crash the IDE. A lot of improvements could be made to this code. Caching the parsing results would dramatically improve search speed, and the parsing algorithms themselves could be vastly accelerated. Still, it works. Here's a list of exercises left "for the reader" :) * Improve the parsing algorithms, possibly by using array pointers instead of string manipulation * Cache results so they don't have to be repeated every time * Extend the concept to popup a list of labels when the user types "Goto " or "GoSub " * Implement sorting in the list box [as an option, as it's not always appropriate] * In the enum pop-up box, check which values have already been checked for in the Select Case statement, and draw them in grey, or strike through, or something. Anyway, have fun, enjoy the code, and don't forget to send me your comments [and your vote :) ] If you use any of the code, please let me know [I won't mind, honest, but I'd like to be informed, for my ego's sake if nothing else]. grigri
This program takes a bitmap image and applies a bevel effect to it, adding hilights and shadows to make it appear 3-D. The direction and elevation of the light can be changed, as can the size of the bevel. Includes a "debug" mode which shows the process step-by-step (see screenshot) Some of the calculations have been converted to integer calculations for speed. Others still use floating-point, this is one future optimization that I might do.
Normally when you open a non-project VB-associated file such as a form (.frm), class module (.cls) or standard module (.bas), VB creates a new project and adds that component to it. I've never found this functionality useful, and on occasion it's annoying. This Add-In detects when components are loaded directly, and tries to find the associated project. If it succeeds, it loads the project and then displays the component you loaded - a much more useful way of doing things!
Purpose: Allows customization of the icons displayed in the VB Project Explorer window. Icons can be customized on a global level (eg all form icons) or on an individual per-component level. I personally use it for visually separating collection classes, interfaces and normal classes. It allows 32-bit colour icons to be used, as opposed to VB's standard 16-colour ones.
Playing multiple sounds simultaneously is not an easy task, especially in VB. Most VB applications (and games!) that use sound use the PlaySound() API function [which only allows one sound at a time]; others resort to DirectX or third-party DLLs such as BASS. This project is a first step to ending all that, presenting an API-only method. _________________________________________________________ I don't know if it's compatible with VB5, any feedback on this would be appreciated. _________________________________________________________ Includes an extensive ReadMe file, full demo and clean, commented code.
This VB6 Add-In gives you a bunch of special options for the IDE Project Tree. All options are configurable through a control panel (access through the AddIns menu). While there are a lot of enhancements, my absolute favorite is the ability to re-order the items in the tree. ----------------------------------- Updated : fix for the SDI mode + other bits
This code creates a semi-transparent reflection of your form which shimmers in realtime. The screenshot shows the basic idea, but it looks much better animated! It uses the UpdateLayeredWindow() API, so will only work on 2k/XP. I have only tested it on XP. It can use quite a bit of CPU (especially while moving or sizing the form) but could be a nice feature on an about box or something. Parts of the code are optimized, others are not. It could easily be improved upon, and I welcome any suggestions you might have. The effect subclasses your form. To keep the code simple, I have not used ASM-thunking as I usually do, so if you run it in the IDE: DO NOT press the stop button, and DO NOT try and debug-step through the subclassed WindowProc. If you avoid doing this it will run in the IDE quite nicely. There is one "feature" that occurs when the form is near the left edge of the screen : the wave is shunted to the right. I don't know why, if you do, tell me! Some routines were adapted from the vbaccelerator article at http://www.vbaccelerator.com/home/vb/code/libraries/Graphics_and_GDI/Drop_Shadows/article.asp
This is a Shell Extension (Icon Handler) for VB files, written in VB. It allows you to display different icons in explorer for project and form files, depending on their type - very useful for opening the correct project. The code is quite simple, and well-commented. Also included are replacement icons for the relevant VB files, in multiple formats up to 48x48 in 32-bit colour.
To judge from some recent submissions, some people forget their variables! This is my take on how to avoid this, by making an IDE addin that shows a list of your private variables when you press a hotkey (Ctrl+m). It's not perfect, but it could be a good starting point for other IDE enhancements, if anyone's interested :)
The VB IDE's intellisense features really are a godsend. However, a few omissions in its conception are a bit annoying. For example, when you are doing a Select Case statement with an enum value, you would expect the intellisense to pop up a list box of all the enum values, like it does if you were in an If statement. That's exactly what this add-in does. It adds this functionality to the IDE. I have seen several ideas of how to get around this limitation, but none that take it this far. It's not really surprising that no one else has done it. The objects add-ins get to play with to query and manipulate the code conveniently ignore the existence of Enums, totally. So you really have to do it the hard way - parsing the strings until you find the right one. If none is found then it falls back on the typelibs the project references, hoping to find it there. I'm not going to delve into a detailed description of how the parsing system works, because it's really not that complicated. It's just long, annoying, and with lots of pitfalls to watch out for. The parsing code itself could be is very useful to anyone wanting to parse VB code, for any reason. Little gems like GetModuleEnums() or GetProcParams() could prove themselves handy in any number of situations. I'm not saying the code is bug-free, because it almost certainly isn't. It does however work in every circumstance I have tested, and has yet to crash the IDE. A lot of improvements could be made to this code. Caching the parsing results would dramatically improve search speed, and the parsing algorithms themselves could be vastly accelerated. Still, it works. Here's a list of exercises left "for the reader" :) * Improve the parsing algorithms, possibly by using array pointers instead of string manipulation * Cache results so they don't have to be repeated every time * Extend the concept to popup a list of labels when the user types "Goto " or "GoSub " * Implement sorting in the list box [as an option, as it's not always appropriate] * In the enum pop-up box, check which values have already been checked for in the Select Case statement, and draw them in grey, or strike through, or something. Anyway, have fun, enjoy the code, and don't forget to send me your comments [and your vote :) ] If you use any of the code, please let me know [I won't mind, honest, but I'd like to be informed, for my ego's sake if nothing else]. grigri