I'm not a big fan of warning boxes, primarily because they tend to differ from usability apps. As Alan Cooper said in About Face, this is tantamount to smoothing the userās head and calling him an idiot.
Bad data notification, on the other hand, is a critical application need. First of all, in my opinion, you should try to prevent the entry of bad data whenever it is humanly possible. For most platforms, there are many tools for third-party developers (ASP.NET, .NET WinForms, WPF, Java Swing, JSP, etc.) that will help with this. (Although it is not very popular around these parts, I actually became partial for Infragistics NetAdvantage.)
Depending on the choice of platform, you have many options for viewing user interfaces. Some of them were mentioned: using the status bar of your application, indicating a problem in the field itself, etc.
I am a .NET guy, so obviously my contribution here will be seasoned by the environment.
I am a huge fan of web control control. They provide a lot of notifications, without a too intrusive interface. Combining the simple Text * property, the detailed ErrorMessage property ErrorMessage and the well-placed and visually obvious ValidationSummary , I get all the validation with virtually no user nightmares. These controls for those who do not work in .NET perform various checks against the entered data and display their Text properties wherever the control is located on the page (usually next to the control being checked). The ErrorMessage property is located in one ValidationSummary , usually located at the top of the page.
In WinForms, I used a combination of ErrorProvider control-style pop-ups and Outlook-style Infragistics' popups. In my last WinForms application, I use two different types of pop-ups: one is translucent and appears in the lower right corner. It has a green checkmark icon and exists to notify the user of successful messages. (My users do not trust computers, if they donāt see any confirmation, they think that the machine has eaten their data. Long history.) These fields disappear after seven seconds, or the user can close them manually.
The second view of the popup does not have transparency, the red X appears in the upper right corner. This is where I show validation errors. In addition, the ErrorProvider control displays an icon next to each field in which validation is not performed, and hovering over that control displays its specific error message. (These specific messages also appear in a pop-up window.) Pop-up error windows disappear after 15 seconds.
About one modular warning field that I use in this application is when it crashes (really unhandled exceptions that are currently practically impossible) and when the user wants to close a dirty window.
Here are some of the methods I used to avoid the warnings. The user can ignore confirmation messages (making their life easier), and they are not motivated by verification errors - they cannot save their data until they are corrected, but they will not be confiscated by head. And, of course, whenever possible, I prevent verification errors by using appropriate masked controls that prevent invalid writing.