mmabout.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:7k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. {========================================================================}
  2. {=                (c) 1995-98 SwiftSoft Ronald Dittrich                 =}
  3. {========================================================================}
  4. {=                          All Rights Reserved                         =}
  5. {========================================================================}
  6. {=  D 01099 Dresden             = Fax.: +49 (0)351-8037944              =}
  7. {=  Loewenstr.7a                = info@swiftsoft.de                     =}
  8. {========================================================================}
  9. {=  Actual versions on http://www.swiftsoft.de/mmtools.html             =}
  10. {========================================================================}
  11. {=  This code is for reference purposes only and may not be copied or   =}
  12. {=  distributed in any format electronic or otherwise except one copy   =}
  13. {=  for backup purposes.                                                =}
  14. {=                                                                      =}
  15. {=  No Delphi Component Kit or Component individually or in a collection=}
  16. {=  subclassed or otherwise from the code in this unit, or associated   =}
  17. {=  .pas, .dfm, .dcu, .asm or .obj files may be sold or distributed     =}
  18. {=  without express permission from SwiftSoft.                          =}
  19. {=                                                                      =}
  20. {=  For more licence informations please refer to the associated        =}
  21. {=  HelpFile.                                                           =}
  22. {========================================================================}
  23. {=  $Date: 12.08.98 - 14:59:47 $                                        =}
  24. {========================================================================}
  25. unit MMAbout;
  26. {$I COMPILER.INC}
  27. {$C PRELOAD}
  28. interface
  29. uses
  30.     {$IFDEF WIN32}
  31.     Windows,
  32.     ShellApi,
  33.     {$ELSE}
  34.     WinTypes,
  35.     WinProcs,
  36.     ToolHelp,
  37.     {$ENDIF}
  38.     SysUtils,
  39.     Classes,
  40.     Graphics,
  41.     Forms,
  42.     Controls,
  43.     StdCtrls,
  44.     Buttons,
  45.     ExtCtrls,
  46.     CRightC;
  47. type
  48.   {-- TMMAboutBox -------------------------------------------------------}
  49.   TMMAboutBox = class(TForm)
  50.     Panel1: TPanel;
  51.     OKButton: TButton;
  52.     Panel2: TPanel;
  53.     Image1: TImage;
  54.     Copyright1: TLabel;
  55.     Address4: TLabel;
  56.     Copyright2: TLabel;
  57.     Label2: TLabel;
  58.     Address5: TLabel;
  59.     Timer1: TTimer;
  60.     Label4: TLabel;
  61.     Label1: TLabel;
  62.     procedure FormCreate(Sender: TObject);
  63.     procedure Timer1Timer(Sender: TObject);
  64.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  65.     procedure FormShow(Sender: TObject);
  66.     procedure Address4Click(Sender: TObject);
  67.     procedure Address5Click(Sender: TObject);
  68.   private
  69.     AboutCount: integer;
  70.   end;
  71. var
  72.   MMAboutBox: TMMAboutBox;
  73. procedure Show_AboutBox(Time: integer);
  74. procedure Show_AboutBoxEx(Time: integer);
  75. procedure Show_EvalAboutBox(Time: integer);
  76. implementation
  77. uses MMObj,MMUtils;
  78. {$R *.DFM}
  79. const
  80.   AboutCounter: integer = 5;
  81.   AboutCalls  : integer = 0;
  82. {-------------------------------------------------------------------------}
  83. procedure TMMAboutBox.FormCreate(Sender: TObject);
  84. begin
  85.    AboutCount := AboutCounter;
  86.    {$IFDEF WIN32}
  87.    Address4.Font.Color := clNavy;
  88.    Address4.Font.Style := Address4.Font.Style + [fsUnderline];
  89.    Address4.Cursor     := crsHand1;
  90.    Address5.Font.Color := clNavy;
  91.    Address5.Font.Style := Address5.Font.Style + [fsUnderline];
  92.    Address5.Cursor     := crsHand1;
  93.    {$ENDIF}
  94. end;
  95. {-------------------------------------------------------------------------}
  96. procedure TMMAboutBox.FormShow(Sender: TObject);
  97. begin
  98.    if (AboutCount = 0) then
  99.    begin
  100.       OKButton.Enabled := True;
  101.    end
  102.    else Timer1.Enabled := True;
  103. end;
  104. {-------------------------------------------------------------------------}
  105. procedure TMMAboutBox.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  106. begin
  107.    if AboutCount > 0 then CanClose := False
  108.    else CanClose := True;
  109. end;
  110. {-------------------------------------------------------------------------}
  111. procedure TMMAboutBox.Timer1Timer(Sender: TObject);
  112. begin
  113.    if (AboutCount > 0) then dec(AboutCount);
  114.    if (AboutCount = 0) then
  115.    begin
  116.       OKButton.Enabled := True;
  117.       Timer1.Enabled := False;
  118.    end;
  119. end;
  120. {-------------------------------------------------------------------------}
  121. procedure TMMAboutBox.Address4Click(Sender: TObject);
  122. var
  123.    S: string;
  124. begin
  125.    {$IFDEF WIN32}
  126.    S := 'mailto:'+Address4.Caption;
  127.    ShellExecute(0, nil, PChar(S), nil, nil, SW_SHOWDEFAULT);
  128.    {$ENDIF}
  129. end;
  130. {-------------------------------------------------------------------------}
  131. procedure TMMAboutBox.Address5Click(Sender: TObject);
  132. var
  133.    S: string;
  134. begin
  135.    {$IFDEF WIN32}
  136.    S := Address5.Caption;
  137.    ShellExecute(0, nil, PChar(S), nil, nil, SW_SHOWDEFAULT);
  138.    {$ENDIF}
  139. end;
  140. {$IFDEF TRIAL}
  141. {-------------------------------------------------------------------------}
  142. procedure Show_NoIDEMessage;
  143. var
  144.    aBuf: array[0..255] of Char;
  145. begin
  146.      with TMMAboutBox.Create(NIL) do
  147.      try
  148. //        Copyright1.Caption := CRightC.Copyright2;
  149.         ShowModal;
  150.      finally
  151.         Free;
  152.      end;
  153.      Application.MessageBox(StrPCopy(aBuf,'IDE not found. Please register !'),
  154.                                           'Multimedia Tools', MB_OK);
  155.      Halt;
  156. end;
  157. {-------------------------------------------------------------------------}
  158. procedure Show_TimeExpired;
  159. var
  160.    aBuf: array[0..255] of Char;
  161. begin
  162.      with TMMAboutBox.Create(NIL) do
  163.      try
  164. //        Copyright1.Caption := CRightC.Copyright2;
  165.         ShowModal;
  166.      finally
  167.         Free;
  168.      end;
  169.      Application.MessageBox(StrPCopy(aBuf,'Your evalution period has expired. Please register !'),
  170.                                           'Multimedia Tools', MB_OK);
  171.      Halt;
  172. end;
  173. {$ENDIF}
  174. {-------------------------------------------------------------------------}
  175. procedure Show_AboutBox(Time: integer);
  176. begin
  177.      with TMMAboutBox.Create(nil) do
  178.      try
  179.         { Copyright1.Caption := CRightC.Copyright2; }
  180.         AboutCount := Time;
  181.         ShowModal;
  182.      finally
  183.         Free;
  184.      end;
  185. end;
  186. {-------------------------------------------------------------------------}
  187. procedure Show_AboutBoxEx(Time: integer);
  188. begin
  189.    inc(AboutCalls);
  190.    if (AboutCalls = 1) then Show_AboutBox(Time);
  191. end;
  192. {-------------------------------------------------------------------------}
  193. procedure Show_EvalAboutBox(Time: integer);
  194. begin
  195.      with TMMAboutBox.Create(nil) do
  196.      try
  197.         { Copyright1.Caption := CRightC.Copyright2; }
  198.         Caption := 'Evalution Version - not for distribution';
  199.         AboutCount := Time;
  200.         ShowModal;
  201.      finally
  202.         Free;
  203.      end;
  204. end;
  205. initialization
  206.      { copyright string OK ? }
  207.      if Modifiziert then Halt;
  208. {$IFDEF TRIAL}
  209.      { is IDE running ?}
  210.      if not IDERunning then Show_NoIDEMessage;
  211.      if not CheckTime then Show_TimeExpired;
  212. {$ENDIF}
  213. end.