[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    If you display more than a few [error] messages in your application,
    using a simple method such as the following may not be the best approach:
    Application.MessageBox(
      'File not found', 'Error', mb_OK );

    Above method of displaying errors will make it harder to modify actual
    messages since they are distributed all over your application source
    code. It may be better to have a "centralized" function that can display
    error messages, or better yet, a centralized function that can display
    replaceable error messages. Consider the following example:

    type
      cnMessageIDs =
        (
          nMsgID_NoError,
          nMsgID_FileNotFound,
          nMsgID_OutOfMemory,
          nMsgID_ExitProgram
          // list your other error
          // IDs here...
        );

    const
      csMessages_ShortVersion
        : array [ Low( cnMessageIDs )..
                  High( cnMessageIDs ) ]
          of PChar =
        (
          'No error',
          'File not found',
          'Out of memory',
          'Exit program?'
          // other error messages...
        );

      csMessages_DetailedVersion
        : array [ Low( cnMessageIDs )..
                  High( cnMessageIDs ) ]
          of PChar =
        (
          'No error; please ignore!',

          'File c:\config.sys not found.'+
          'Contact your sys. admin.',

          'Out of memory. You need '+
          'at least 4M for this function',

          'Exit program? '+
          'Save your data first!'
          // other error messages...
        );

    procedure MsgDisplay(
      cnMessageID : cnMessageIDs );
    begin
      // set this to False to display
      // short version of the messages
      if( True )then
        Application.MessageBox(
          csMessages_DetailedVersion[
            cnMessageID ],
          'Error',
          mb_OK )
      else
        Application.MessageBox(
          csMessages_ShortVersion[
            cnMessageID ],
          'Error',
          mb_OK );
    end;

    Now, whenever you want to display an error message, you can call the
    MsgDisplay() function with the message ID rather than typing the
    message itself:

    MsgDisplay( nMsgID_FileNotFound );

    MsgDisplay() function will not only let you keep all your error messages
    in one place -- inside one unit for example, but it will also let you
    keep different sets of error messages -- novice/expert, debug/release,
    and even different sets for different languages.

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]