home *** CD-ROM | disk | FTP | other *** search
- unit TestComponent;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, dsgnintf;
-
- type
- TagTestComponent = class(TEdit)
- private
- m_sProp1 : string;
- m_iProp2 : integer;
-
- function GetProp1 : string;
- procedure SetProp1(sProp1 : string);
-
- function GetProp2 : integer;
- procedure SetProp2(iProp2 : integer);
- protected
- procedure Loaded; override;
- published
- property Prop1 : string read GetProp1 write SetProp1;
- property Prop2 : integer read GetProp2 write SetProp2;
- end;
-
- procedure Register;
-
- implementation
-
- { ** TagTestComponent ** }
-
- procedure TagTestComponent.Loaded;
- begin
- inherited Loaded;
- end;
-
- function TagTestComponent.GetProp1 : string;
- begin
- Result := m_sProp1;
- end;
-
- procedure TagTestComponent.SetProp1(sProp1 : string);
- begin
- m_sProp1 := sProp1;
- end;
-
- function TagTestComponent.GetProp2 : integer;
- begin
- Result := m_iProp2;
- end;
-
- procedure TagTestComponent.SetProp2(iProp2 : integer);
- begin
- m_iProp2 := iProp2;
- end;
-
- type
- TagTestPropertyEditor = class(TPropertyEditor)
- public
- procedure Edit; override;
- function GetValue : string; override;
- procedure SetValue(const Value : string); override;
- function GetAttributes: TPropertyAttributes; override;
- end;
-
- TagTestComponentEditor = class(TComponentEditor)
- public
- procedure ExecuteVerb(Index : integer); override;
- function GetVerb(Index : integer) : string; override;
- function GetVerbCount : integer; override;
- end;
-
- const
- VERB_1 = 0;
- VERB_2 = 1;
-
- { ** TagTestPropertyEditor ** }
- procedure TagTestPropertyEditor.Edit;
- begin
- ShowMessage('Property Editor');
- end;
-
- function TagTestPropertyEditor.GetValue : string;
- begin
- Result := 'Aint this cool';
- end;
-
- procedure TagTestPropertyEditor.SetValue(const Value : string);
- begin
- MessageBeep(-1);
- end;
-
- function TagTestPropertyEditor.GetAttributes: TPropertyAttributes;
- begin
- Result := [paDialog];
- end;
-
- { ** TagTestComponentEditor ** }
- procedure TagTestComponentEditor.ExecuteVerb(Index : integer);
- begin
- case Index of
- VERB_1:
- ShowMessage('Delphi is cool !');
- VERB_2:
- ShowMessage('Aint this cool too ?');
- end;
- end;
-
- function TagTestComponentEditor.GetVerb(Index : integer) : string;
- begin
- case Index of
- VERB_1:
- Result := 'First Verb';
- VERB_2:
- Result := 'Second Verb';
- end;
- end;
-
- function TagTestComponentEditor.GetVerbCount : integer;
- begin
- Result := 2;
- end;
-
- procedure Register;
- begin
- RegisterComponents('Hawk Eye Test', [TagTestComponent]);
-
- RegisterPropertyEditor(TypeInfo(integer), TagTestComponent, 'Prop2', TagTestPropertyEditor);
- RegisterComponentEditor(TagTestComponent, TagTestComponentEditor);
- end;
-
- end.
-