home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / HAWKEYE / HAWKEVAL.ZIP / _SETUP.1 / TestComponent.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-07-17  |  2.8 KB  |  134 lines

  1. unit TestComponent;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, dsgnintf;
  8.  
  9. type
  10.     TagTestComponent = class(TEdit)
  11.    private
  12.        m_sProp1    : string;
  13.        m_iProp2    : integer;
  14.  
  15.        function  GetProp1 : string;
  16.        procedure SetProp1(sProp1 : string);
  17.  
  18.        function  GetProp2 : integer;
  19.        procedure SetProp2(iProp2 : integer);
  20.    protected
  21.        procedure Loaded; override;
  22.    published
  23.        property Prop1 : string        read GetProp1    write SetProp1;
  24.        property Prop2 : integer    read GetProp2    write SetProp2;
  25.    end;  
  26.  
  27. procedure Register;
  28.  
  29. implementation
  30.  
  31. { ** TagTestComponent ** }
  32.  
  33. procedure TagTestComponent.Loaded;
  34. begin
  35.     inherited Loaded;
  36. end;
  37.  
  38. function TagTestComponent.GetProp1 : string;
  39. begin
  40.     Result := m_sProp1;
  41. end;
  42.  
  43. procedure TagTestComponent.SetProp1(sProp1 : string);
  44. begin
  45.     m_sProp1 := sProp1;
  46. end;
  47.  
  48. function TagTestComponent.GetProp2 : integer;
  49. begin
  50.     Result := m_iProp2;
  51. end;
  52.  
  53. procedure TagTestComponent.SetProp2(iProp2 : integer);
  54. begin
  55.     m_iProp2 := iProp2;
  56. end;
  57.  
  58. type
  59.     TagTestPropertyEditor = class(TPropertyEditor)
  60.    public
  61.        procedure Edit; override;
  62.        function  GetValue : string; override;
  63.        procedure SetValue(const Value : string); override;
  64.         function  GetAttributes: TPropertyAttributes; override;
  65.    end;
  66.  
  67.    TagTestComponentEditor = class(TComponentEditor)
  68.    public
  69.         procedure ExecuteVerb(Index : integer); override;
  70.        function  GetVerb(Index : integer) : string; override;
  71.        function  GetVerbCount : integer; override;
  72.    end;
  73.  
  74. const
  75.     VERB_1    = 0;
  76.    VERB_2    = 1;
  77.  
  78. { ** TagTestPropertyEditor ** }
  79. procedure TagTestPropertyEditor.Edit;
  80. begin
  81.     ShowMessage('Property Editor');
  82. end;
  83.  
  84. function TagTestPropertyEditor.GetValue : string;
  85. begin
  86.     Result := 'Aint this cool';
  87. end;
  88.  
  89. procedure TagTestPropertyEditor.SetValue(const Value : string);
  90. begin
  91.     MessageBeep(-1);
  92. end;
  93.  
  94. function TagTestPropertyEditor.GetAttributes: TPropertyAttributes;
  95. begin
  96.     Result := [paDialog];
  97. end;
  98.  
  99. { ** TagTestComponentEditor ** }
  100. procedure TagTestComponentEditor.ExecuteVerb(Index : integer);
  101. begin
  102.     case Index of
  103.        VERB_1:
  104.            ShowMessage('Delphi is cool !');
  105.        VERB_2:
  106.            ShowMessage('Aint this cool too ?');
  107.    end;
  108. end;
  109.  
  110. function TagTestComponentEditor.GetVerb(Index : integer) : string;
  111. begin
  112.     case Index of
  113.        VERB_1:
  114.            Result := 'First Verb';
  115.        VERB_2:
  116.            Result := 'Second Verb';
  117.    end;
  118. end;
  119.  
  120. function TagTestComponentEditor.GetVerbCount : integer;
  121. begin
  122.     Result := 2;
  123. end;
  124.  
  125. procedure Register;
  126. begin
  127.   RegisterComponents('Hawk Eye Test', [TagTestComponent]);
  128.  
  129.   RegisterPropertyEditor(TypeInfo(integer), TagTestComponent, 'Prop2', TagTestPropertyEditor);
  130.   RegisterComponentEditor(TagTestComponent, TagTestComponentEditor);
  131. end;
  132.  
  133. end.
  134.