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

Delphi控件源码

开发平台:

Delphi

  1. {========================================================================}
  2. {=                (c) 1995-98 SwiftSoft Ronald Dittrich                 =}
  3. {========================================================================}
  4. {=                          All Rights Reserved                         =}
  5. {========================================================================}
  6. {=  D 01099 Dresden             = Tel.: +0351-8012255                   =}
  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: 20.01.1998 - 18:00:00 $                                      =}
  24. {========================================================================}
  25. unit MMEnvPrp;
  26. {$I COMPILER.INC}
  27. interface
  28. uses
  29. {$IFDEF WIN32}
  30.     Windows,
  31. {$ELSE}
  32.     WinTypes,
  33.     WinProcs,
  34. {$ENDIF}
  35. {$IFDEF DELPHI6}
  36.     DesignIntf,
  37.     DesignEditors,
  38. {$ELSE}
  39.     DsgnIntf,
  40. {$ENDIF}
  41.     SysUtils,
  42.     Messages,
  43.     Consts,
  44.     Classes,
  45.     Controls,
  46.     MMEnvelp,
  47.     MMEnvDlg;
  48. type
  49.   {-- TMMEnvelopePointProperty ------------------------------------------}
  50.   TMMEnvelopePointProperty = class(TClassProperty)
  51.   public
  52.     procedure Edit; override;
  53.     function  GetAttributes: TPropertyAttributes; override;
  54.   end;
  55.   {-- TMMEnvelopeEditor -------------------------------------------------}
  56.   TMMEnvelopeEditor = class(TComponentEditor)
  57.   public
  58.     procedure ExecuteVerb(Index: Integer); override;
  59.     function  GetVerb(Index: Integer): string; override;
  60.     function  GetVerbCount: Integer; override;
  61.   end;
  62. implementation
  63. {== TMMEnvelopePointProperty ============================================}
  64. function TMMEnvelopePointProperty.GetAttributes: TPropertyAttributes;
  65. begin
  66.    Result := [paDialog];
  67. end;
  68. {-- TMMEnvelopePointProperty --------------------------------------------}
  69. procedure TMMEnvelopePointProperty.Edit;
  70. begin
  71.    with TMMEnvelopeDlg.Create(nil) do
  72.    try
  73.       with (GetComponent(0) as TMMEnvelope) do
  74.       begin
  75.          SetAllRanges(RangeMinX,RangeMaxX,RangeMinY,RangeMaxY,BaseY);
  76.          Envelope.MoveFirstPoint := MoveFirstPoint;
  77.          Envelope.MoveLastPoint := MoveLastPoint;
  78.       end;
  79.       Envelope.Points := TMMEnvelopePointList(GetOrdValue);
  80.       if ShowModal = mrOK then
  81.       begin
  82.          SetOrdValue(Longint(Envelope.Points));
  83.          Self.Designer.Modified;
  84.       end;
  85.    finally
  86.       Free;
  87.    end;
  88. end;
  89. {== TMMEnvelopeEditor ===================================================}
  90. procedure TMMEnvelopeEditor.ExecuteVerb(Index: Integer);
  91. begin
  92.    with TMMEnvelopeDlg.Create(nil) do
  93.    try
  94.       with (Component as TMMEnvelope) do
  95.       begin
  96.          SetAllRanges(RangeMinX,RangeMaxX,RangeMinY,RangeMaxY,BaseY);
  97.       end;
  98.       Envelope.Points := (Component as TMMEnvelope).Points;
  99.       Envelope.MoveFirstPoint := (Component as TMMEnvelope).MoveFirstPoint;
  100.       Envelope.MoveLastPoint := (Component as TMMEnvelope).MoveLastPoint;
  101.       if ShowModal = mrOK then
  102.       begin
  103.          (Component as TMMEnvelope).Points := Envelope.Points;
  104.          Self.Designer.Modified;
  105.       end;
  106.    finally
  107.       Free;
  108.    end;
  109. end;
  110. {-- TMMEnvelopeEditor ---------------------------------------------------}
  111. function TMMEnvelopeEditor.GetVerb(Index: Integer): string;
  112. begin
  113.    Result := 'Envelope Editor...';
  114. end;
  115. {-- TMMEnvelopeEditor ---------------------------------------------------}
  116. function TMMEnvelopeEditor.GetVerbCount: Integer;
  117. begin
  118.    Result := 1;
  119. end;
  120. end.