home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 October / PCWorld_2000-10_cd2.bin / Borland / interbase / IBConsole_src.ZIP / ibconsole / frmuMessage.pas < prev    next >
Pascal/Delphi Source File  |  2000-07-24  |  19KB  |  459 lines

  1. {
  2.  * The contents of this file are subject to the InterBase Public License
  3.  * Version 1.0 (the "License"); you may not use this file except in
  4.  * compliance with the License.
  5.  * 
  6.  * You may obtain a copy of the License at http://www.Inprise.com/IPL.html.
  7.  * 
  8.  * Software distributed under the License is distributed on an "AS IS"
  9.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  10.  * the License for the specific language governing rights and limitations
  11.  * under the License.  The Original Code was created by Inprise
  12.  * Corporation and its predecessors.
  13.  * 
  14.  * Portions created by Inprise Corporation are Copyright (C) Inprise
  15.  * Corporation. All Rights Reserved.
  16.  * 
  17.  * Contributor(s): ______________________________________.
  18. }
  19.  
  20. {****************************************************************
  21. *
  22. *  f r m u M e s s a g e
  23. *
  24. ****************************************************************
  25. *  Author: The Client Server Factory Inc.
  26. *  Date:   March 1, 1999
  27. *
  28. *  Description:  This unit provides a default message display
  29. *                window used throughout the application
  30. *
  31. *****************************************************************
  32. * Revisions:
  33. *
  34. *****************************************************************}
  35.  
  36. unit frmuMessage;
  37.  
  38. interface
  39.  
  40. uses
  41.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  42.   StdCtrls, ExtCtrls, frmuDlgClass;
  43.  
  44. type
  45.   TfrmMessage = class(TDialog)
  46.     imgWarning: TImage;
  47.     imgInformation: TImage;
  48.     imgError: TImage;
  49.     stxSummaryMsg: TStaticText;
  50.     lblDetailMsg: TLabel;
  51.     btnOK: TButton;
  52.     memDetailMsg: TMemo;
  53.     procedure btnOKClick(Sender: TObject);
  54.   private
  55.     { Private declarations }
  56.   public
  57.     { Public declarations }
  58.   end;
  59.  
  60. Const
  61.   {Global Errors - (0001-2999}
  62.   ERR_SYSTEM_INIT = 0001;
  63.   ERR_USERNAME = 0002;
  64.   ERR_PASSWORD = 0003;
  65.   ERR_PASSWORD_MISSMATCH = 0004;
  66.   ERR_ADD_USER = 0005;
  67.   ERR_MODIFY_USER = 0006;
  68.   ERR_DELETE_USER = 0007;
  69.   ERR_GET_USERS = 0008;
  70.   ERR_GET_USER_INFO = 0009;
  71.   ERR_SOURCE_DB = 0010;
  72.   ERR_DESTINATION_DB = 0011;
  73.   ERR_SAME_SOURCE_DESTINATION = 0012;
  74.   ERR_DB_FILE = 0013;
  75.   ERR_SERVER_NAME = 0014;
  76.   ERR_PROTOCOL = 0015;
  77.   ERR_BACKUP_DB = 0016;
  78.   ERR_RESTORE_DB = 0017;
  79.   ERR_GET_TABLES = 0018;
  80.   ERR_GET_VIEWS = 0019;
  81.   ERR_SERVICE = 0020;
  82.   ERR_INVALID_CERTIFICATE = 0024;
  83.   ERR_NUMERIC_VALUE = 0025;
  84.   ERR_GET_TABLE_DATA = 0026;
  85.   ERR_DB_ALIAS = 0027;
  86.   ERR_GET_ROLES = 0028;
  87.   ERR_SERVER_LOGIN = 0029;
  88.   ERR_DB_CONNECT = 0030;
  89.   ERR_DB_DISCONNECT = 0031;
  90.   ERR_GET_PROCEDURES = 0032;
  91.   ERR_GET_FUNCTIONS = 0033;
  92.   ERR_GET_GENERATORS = 0034;
  93.   ERR_GET_EXCEPTIONS = 0035;
  94.   ERR_GET_BLOB_FILTERS = 0036;
  95.   ERR_GET_COLUMNS = 0037;
  96.   ERR_GET_INDICES = 0038;
  97.   ERR_GET_REFERENTIAL_CONST = 0039;
  98.   ERR_GET_UNIQUE_CONST = 0040;
  99.   ERR_GET_CHECK_CONST = 0041;
  100.   ERR_GET_TRIGGERS = 0042;
  101.   ERR_GET_DDL = 0043;
  102.   ERR_INVALID_PROPERTY_VALUE = 0044;
  103.   ERR_GET_DEPENDENCIES = 0045;
  104.   ERR_GET_DB_PROPERTIES = 0046;
  105.   ERR_DB_SIZE = 0047;
  106.   ERR_ISQL_ERROR = 0048;
  107.   ERR_SERVER_SERVICE = 0049;
  108.   ERR_EXTERNAL_EDITOR = 0050;
  109.   ERR_SERVER_ALIAS = 0051;
  110.   ERR_BACKUP_ALIAS = 0052;
  111.   ERR_DB_SHUTDOWN = 0053;
  112.   ERR_MODIFY_DB_PROPERTIES = 0054;
  113.   ERR_DROP_DATABASE = 0055;
  114.   ERR_FILE_OPEN = 0056;
  115.   ERR_INV_EDITOR = 0057;
  116.   ERR_EDITOR_MISSING = 0058;
  117.   ERR_BAD_FORMAT = 0059;
  118.   ERR_INV_DIALECT = 0060;
  119.   ERR_FOPEN = 0061;
  120.   ERR_TEXT_NOT_FOUND = 0062;
  121.   ERR_PRINT = 0063;
  122.   ERR_NO_PATH = 0064;
  123.   ERR_NO_FILES = 0065;
  124.   ERR_GET_DOMAINS = 0066;
  125.   ERR_EXT_TOOL_ERROR = 0067;
  126.   ERR_PROPERTIES = 0068;
  127.   ERR_ALIAS_EXISTS = 0069;
  128.  
  129.   {Global Warnings - (3000-5999}
  130.   WAR_DB_UNAVAILABLE = 3000;
  131.   WAR_NO_PERMISSION = 3001;
  132.   WAR_SERVER_REGISTERED = 3002;
  133.   WAR_DUPLICATE_DB_ALIAS = 3003;
  134.   WAR_BACKUP_FILE_REGISTERED = 3004;
  135.   WAR_DIALECT_MISMATCH = 3005;
  136.   WAR_REMOTE_FILENAME = 3006;
  137.  
  138.   {Global Messages - (6000-9999}
  139.   INF_ADD_USER_SUCCESS = 6000;
  140.   INF_BACKUP_DB_SUCCESS = 6001;
  141.   INF_RESTORE_DB_SUCCESS = 6002;
  142.   INF_NO_PENDING_TRANSACTIONS = 6003;
  143.   INF_RESTART_SERVER = 6004;
  144.   INF_DATABASE_SHUTDOWN = 6005;
  145.   INF_DATABASE_RESTARTED = 6006;
  146.   INF_SQL_SCRIPT = 6007;
  147.   INF_DATABASE_SWEEP = 6008;
  148.  
  149.   function DisplayMsg(const MsgNo: integer; MsgText: string): boolean;
  150.  
  151. implementation
  152.  
  153. uses zluUtility, ibErrorCodes;
  154.  
  155. {$R *.DFM}
  156.  
  157. {****************************************************************
  158. *
  159. *  D i s p l a y M s g ()
  160. *
  161. ****************************************************************
  162. *  Author: The Client Server Factory Inc.
  163. *  Date:   March 1, 1999
  164. *
  165. *  Input:  MsgNo   - Message No
  166. *          MsgText - The actual error message text
  167. *
  168. *  Return: None
  169. *
  170. *  Description:  Prepare and show message dialog depending on
  171. *                the MsgNo and MsgText
  172. *
  173. *****************************************************************
  174. * Revisions:
  175. *
  176. *****************************************************************}
  177. function DisplayMsg(const MsgNo: integer; MsgText: string): boolean;
  178. var
  179.   frmMessage: TfrmMessage;
  180. begin
  181.   frmMessage := TfrmMessage.Create(Application);
  182.   try
  183.     MsgText := RemoveControlChars(MsgText);
  184.  
  185.     case MsgNo of
  186.       1..2999:
  187.       begin
  188.         frmMessage.Caption := 'Error';
  189.         frmMessage.imgError.Visible := true;
  190.         frmMessage.imgWarning.Visible := false;
  191.         frmMessage.imgInformation.Visible := false;
  192.         frmMessage.memDetailMsg.Text :=  MsgText;        
  193.       end;
  194.       3000..5999:
  195.       begin
  196.         frmMessage.Caption := 'Warning';
  197.         frmMessage.imgError.Visible := false;
  198.         frmMessage.imgWarning.Visible := true;
  199.         frmMessage.imgInformation.Visible := false;
  200.         frmMessage.memDetailMsg.Text :=  MsgText;
  201.       end;
  202.       6000..9999:
  203.       begin
  204.         frmMessage.Caption := 'Information';
  205.         frmMessage.imgError.Visible := false;
  206.         frmMessage.imgWarning.Visible := false;
  207.         frmMessage.imgInformation.Visible := true;
  208.         frmMessage.memDetailMsg.Text :=  MsgText;
  209.       end;
  210.       335544321..336920607:
  211.       begin
  212.         frmMessage.Caption := 'Error';
  213.         frmMessage.imgError.Visible := true;
  214.         frmMessage.imgWarning.Visible := false;
  215.         frmMessage.imgInformation.Visible := false;
  216.         frmMessage.memDetailMsg.Text :=  MsgText;        
  217.       end;
  218.     end;
  219.  
  220.     case MsgNo of
  221.       //****** Errors ******
  222.       ERR_SYSTEM_INIT:
  223.         frmMessage.stxSummaryMsg.Caption := 'Initialization failure.';
  224.       ERR_USERNAME:
  225.         frmMessage.stxSummaryMsg.Caption := 'Invalid username. Please enter a valid username.';
  226.       ERR_PASSWORD:
  227.         frmMessage.stxSummaryMsg.Caption := 'Invalid password. Please enter a valid password.';
  228.       ERR_PASSWORD_MISSMATCH:
  229.         frmMessage.stxSummaryMsg.Caption := 'The password does not match the confirmation password.';
  230.       ERR_ADD_USER:
  231.         frmMessage.stxSummaryMsg.Caption := 'Unable to add user.';
  232.       ERR_MODIFY_USER:
  233.         frmMessage.stxSummaryMsg.Caption := 'Unable to modify user account.';
  234.       ERR_DELETE_USER:
  235.         frmMessage.stxSummaryMsg.Caption := 'Unable to delete user.';
  236.       ERR_GET_USERS:
  237.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve user list.';
  238.       ERR_GET_USER_INFO:
  239.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve user information.';
  240.       ERR_SOURCE_DB:
  241.         frmMessage.stxSummaryMsg.Caption := 'Invalid source database name. Please enter a valid database name.';
  242.       ERR_DESTINATION_DB:
  243.         frmMessage.stxSummaryMsg.Caption := 'Invalid destination database name. Please enter a valid database name.';
  244.       ERR_SAME_SOURCE_DESTINATION:
  245.         frmMessage.stxSummaryMsg.Caption := 'The source and destination must be different.';
  246.       ERR_DB_FILE:
  247.         frmMessage.stxSummaryMsg.Caption := 'Invalid database file or the file does not exist.';
  248.       ERR_SERVER_NAME:
  249.         frmMessage.stxSummaryMsg.Caption := 'Invalid server name. Please enter a valid server name.';
  250.       ERR_PROTOCOL:
  251.         frmMessage.stxSummaryMsg.Caption := 'Invalid network protocol. Please select a network protocol from the list.';
  252.       ERR_BACKUP_DB:
  253.         frmMessage.stxSummaryMsg.Caption := 'Database backup failed.';
  254.       ERR_RESTORE_DB:
  255.         frmMessage.stxSummaryMsg.Caption := 'Database restore failed.';
  256.       ERR_GET_TABLES:
  257.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of tables.';
  258.       ERR_GET_VIEWS:
  259.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of views.';
  260.       ERR_SERVICE:
  261.         frmMessage.stxSummaryMsg.Caption := 'Invalid service. Please select a service from the list.';
  262.       ERR_INVALID_CERTIFICATE:
  263.         frmMessage.stxSummaryMsg.Caption := 'The certificate could not be validated based on the information given. Please recheck the id and key information.';
  264.       ERR_NUMERIC_VALUE:
  265.         frmMessage.stxSummaryMsg.Caption := 'Invalid numeric value. Please enter a valid numeric value.';
  266.       ERR_GET_TABLE_DATA:
  267.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve data.';
  268.       ERR_DB_ALIAS:
  269.         frmMessage.stxSummaryMsg.Caption := 'Invalid database alias. Please enter a valid database name.';
  270.       ERR_GET_ROLES:
  271.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of roles.';
  272.       ERR_SERVER_LOGIN:
  273.         frmMessage.stxSummaryMsg.Caption := 'Error logging into the requested server.';
  274.       ERR_DB_CONNECT:
  275.         frmMessage.stxSummaryMsg.Caption := 'Error connecting to the requested database.';
  276.       ERR_DB_DISCONNECT:
  277.         frmMessage.stxSummaryMsg.Caption := 'Error disconnecting from database.';
  278.       ERR_GET_PROCEDURES:
  279.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of procedures.';
  280.       ERR_GET_FUNCTIONS:
  281.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of functions.';
  282.       ERR_GET_GENERATORS:
  283.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of generators.';
  284.       ERR_GET_EXCEPTIONS:
  285.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of exceptions.';
  286.       ERR_GET_BLOB_FILTERS:
  287.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of blob filters.';
  288.       ERR_GET_COLUMNS:
  289.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of columns.';
  290.       ERR_GET_INDICES:
  291.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of indices.';
  292.       ERR_GET_REFERENTIAL_CONST:
  293.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of referential constraints.';
  294.       ERR_GET_UNIQUE_CONST:
  295.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of unique constraints.';
  296.       ERR_GET_CHECK_CONST:
  297.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of check constraints.';
  298.       ERR_GET_TRIGGERS:
  299.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of triggers.';
  300.       ERR_GET_DDL:
  301.         frmMessage.stxSummaryMsg.Caption := 'An error occured while attempting to extract metadata information.';
  302.       ERR_INVALID_PROPERTY_VALUE:
  303.         frmMessage.stxSummaryMsg.Caption := 'Invalid Property Value.';
  304.       ERR_GET_DEPENDENCIES:
  305.         frmMessage.stxSummaryMsg.Caption := 'An error occured while attempting to extract dependency information.';
  306.       ERR_GET_DB_PROPERTIES:
  307.         frmMessage.stxSummaryMsg.Caption := 'An error occured while attempting to retrieve database properties.';
  308.       ERR_DB_SIZE:
  309.         frmMessage.stxSummaryMsg.Caption := 'Invalid database file size.';
  310.       ERR_ISQL_ERROR:
  311.         frmMessage.stxSummaryMsg.Caption := 'SQL Error';
  312.       ERR_SERVER_SERVICE:
  313.         frmMessage.stxSummaryMsg.Caption := 'Service Error';
  314.       ERR_EXTERNAL_EDITOR:
  315.         frmMessage.stxSummaryMsg.Caption := 'External Editor Error';
  316.       ERR_SERVER_ALIAS:
  317.         frmMessage.stxSummaryMsg.Caption := 'Invalid server alias. Please enter a valid server alias.';
  318.       ERR_BACKUP_ALIAS:
  319.         frmMessage.stxSummaryMsg.Caption := 'Invalid backup alias. Please enter a valid backup alias.';
  320.       ERR_DB_SHUTDOWN:
  321.         frmMessage.stxSummaryMsg.Caption := 'Database shutdown unsuccessful.';
  322.       ERR_MODIFY_DB_PROPERTIES:
  323.         frmMessage.stxSummaryMsg.Caption := 'Unable to modify database properties.';
  324.       ERR_DROP_DATABASE:
  325.         frmMessage.stxSummaryMsg.Caption := 'An error occured while attempting to drop the database.';
  326.       ERR_FILE_OPEN:
  327.         frmMessage.stxSummaryMsg.Caption := 'An error occured while attempting to open file.';
  328.       ERR_INV_EDITOR:
  329.         frmMessage.stxSummaryMsg.Caption := 'The editor specified is invalid.';
  330.       ERR_EDITOR_MISSING:
  331.         frmMessage.stxSummaryMsg.Caption := 'The external editor is not specified.';
  332.       ERR_BAD_FORMAT:
  333.         frmMessage.stxSummaryMsg.Caption := 'Unable to display blob.  The format is not graphical.';
  334.       ERR_INV_DIALECT:
  335.         frmMessage.stxSummaryMsg.Caption := 'Unable to change the client dialect.';
  336.       ERR_FOPEN:
  337.         frmMessage.stxSummaryMsg.Caption := 'Error occured opening file.';
  338.       ERR_TEXT_NOT_FOUND:
  339.         frmMessage.stxSummaryMsg.Caption := 'Search string not found.';
  340.       ERR_PRINT:
  341.         frmMessage.stxSummaryMsg.Caption := 'Unable to print.  Make sure your printer is installed and working.';
  342.       ERR_NO_PATH:
  343.         frmMessage.stxSummaryMsg.Caption := 'No path was specified for the backup file or database.';
  344.       ERR_NO_FILES:
  345.         frmMessage.stxSummaryMsg.Caption := 'No files were specified for backup or restore.';
  346.       ERR_GET_DOMAINS:
  347.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve a list of domains.';
  348.       ERR_EXT_TOOL_ERROR:
  349.         frmMessage.stxSummaryMsg.Caption := 'Unable to launch external tool';
  350.       ERR_PROPERTIES:
  351.         frmMessage.stxSummaryMsg.Caption := 'Unable to retrieve properties for the object';
  352.       ERR_ALIAS_EXISTS:
  353.         frmMessage.stxSummaryMsg.Caption := 'Invalid alias.  This alias already exists.';
  354.  
  355.       //****** Warnings ******
  356.       WAR_NO_PERMISSION:
  357.         frmMessage.stxSummaryMsg.Caption := 'Insufficient rights for this operation.';
  358.       WAR_SERVER_REGISTERED:
  359.         frmMessage.stxSummaryMsg.Caption := 'The server is already registered.';
  360.       WAR_DUPLICATE_DB_ALIAS:
  361.         frmMessage.stxSummaryMsg.Caption := 'This database alias already exists.';
  362.       WAR_BACKUP_FILE_REGISTERED:
  363.         frmMessage.stxSummaryMsg.Caption := 'The backup file is already registered.';
  364.       WAR_DIALECT_MISMATCH:
  365.         frmMessage.stxSummaryMsg.Caption := 'The client dialect does not match the database dialect.';
  366.       WAR_REMOTE_FILENAME:
  367.         frmMessage.stxSummaryMsg.Caption := 'The file name specified may contain a server name.'+#13#10+
  368.          'Some operations may not work correctly.';
  369.  
  370.       {****** Information ******}
  371.       INF_ADD_USER_SUCCESS:
  372.         frmMessage.stxSummaryMsg.Caption := 'The user was added successfully.';
  373.       INF_BACKUP_DB_SUCCESS:
  374.         frmMessage.stxSummaryMsg.Caption := 'Database backup completed.';
  375.       INF_RESTORE_DB_SUCCESS:
  376.         frmMessage.stxSummaryMsg.Caption := 'Database restore completed.';
  377.       INF_NO_PENDING_TRANSACTIONS:
  378.         frmMessage.stxSummaryMsg.Caption := 'No pending transactions were found.';
  379.       INF_RESTART_SERVER:
  380.         frmMessage.stxSummaryMsg.Caption := 'You must restart the server in order for the changes to go into effect.';
  381.       INF_DATABASE_SHUTDOWN:
  382.         frmMessage.stxSummaryMsg.Caption := 'Database shutdown completed successfully.';
  383.       INF_DATABASE_RESTARTED:
  384.         frmMessage.stxSummaryMsg.Caption := 'Database restart completed successfully.';
  385.       INF_SQL_SCRIPT:
  386.         frmMessage.stxSummaryMsg.Caption := 'SQL script done.';
  387.       INF_DATABASE_SWEEP:
  388.         frmMessage.stxSummaryMsg.Caption := 'Database sweep completed.';
  389.  
  390.       {****** InterBase Errors ******}        
  391.       isc_gbak_db_exists:
  392.          frmMessage.stxSummaryMsg.Caption := 'To overwrite an existing database, set the Overwrite option to TRUE';
  393.       isc_gfix_invalid_sw:
  394.          frmMessage.stxSummaryMsg.Caption := 'An invalid option was specified for the operation.';
  395.       isc_gfix_incmp_sw:
  396.          frmMessage.stxSummaryMsg.Caption := 'The parameters for this operation are conflicting.';
  397.       isc_gfix_retry:
  398.          frmMessage.stxSummaryMsg.Caption := 'An operation was not specified.';
  399.       isc_gfix_retry_db:
  400.          frmMessage.stxSummaryMsg.Caption := 'A database was not specified for the operation';
  401.       isc_gbak_page_size_missing:
  402.          frmMessage.stxSummaryMsg.Caption := 'The page size must be specified.';
  403.       isc_gsec_cant_open_db:
  404.          frmMessage.stxSummaryMsg.Caption := 'The security database could not be opened.';
  405.       isc_gsec_no_usr_name:
  406.          frmMessage.stxSummaryMsg.Caption := 'User name missing.  A user name must be specified for all operations.';
  407.       isc_gsec_err_add:
  408.          frmMessage.stxSummaryMsg.Caption := 'An unknown error was encountered while attempting to add the user record.';
  409.       isc_gsec_err_modify:
  410.         frmMessage.stxSummaryMsg.Caption := 'An unknown error was encountered while attempting to modify the user record.';
  411.       isc_gsec_err_find_mod:
  412.         frmMessage.stxSummaryMsg.Caption := 'An unknown error was encountered while attempting to find/modify the user record.';
  413.       isc_gsec_err_rec_not_found:
  414.         frmMessage.stxSummaryMsg.Caption := 'The information for the user was not found.';      
  415.       isc_gsec_err_delete:
  416.         frmMessage.stxSummaryMsg.Caption := 'An unknown error was encountered while attempting to delete the user record.';
  417.       isc_gsec_err_find_del:
  418.         frmMessage.stxSummaryMsg.Caption := 'An unknown error was encountered while attempting to find/delete the user record.';
  419.       isc_gsec_err_find_disp:
  420.         frmMessage.stxSummaryMsg.Caption := 'An unknown error was encountered while attempting to find/display the user record.';
  421.       isc_sys_request:
  422.         frmMessage.stxSummaryMsg.Caption := 'An unknown error attempting to open a file on the server.';
  423.       else
  424.         if MsgText <> '' then
  425.           frmMessage.stxSummaryMsg.Caption := MsgText
  426.         else
  427.           frmMessage.stxSummaryMsg.Caption := 'An Unknown Error Occured';
  428.     end;
  429.  
  430.     if (MsgText = '') or
  431.        (frmMessage.stxSummaryMsg.Caption = MsgText) then
  432.     begin
  433.       frmMessage.Height := frmMessage.btnOK.Top + frmMessage.btnOK.Height + 35;
  434.       frmMessage.Update;
  435.       Application.ProcessMessages;
  436.     end
  437.     else
  438.     begin
  439.       frmMessage.Height := frmMessage.memDetailMsg.Top + frmMessage.memDetailMsg.Height + 40;
  440.       frmMessage.Update;
  441.       Application.ProcessMessages;
  442.     end;
  443.     
  444.     if ((frmMessage.ShowModal) = mrAbort) then
  445.       result := true
  446.     else
  447.       result := false;
  448.   finally
  449.     frmMessage.Free;
  450.   end;
  451. end;
  452.  
  453. procedure TfrmMessage.btnOKClick(Sender: TObject);
  454. begin
  455.   ModalResult := mrCancel;
  456. end;
  457.  
  458. end.
  459.