| [453] | 1 | unit ORCtrlsDsgn;                                    // Oct 26, 1997 @ 10:00am
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | // To Do:  eliminate topindex itemtip on mousedown (seen when choosing clinic pts)
 | 
|---|
 | 4 | 
 | 
|---|
 | 5 | interface  // --------------------------------------------------------------------------------
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | uses Classes, DesignIntf, DesignEditors, TypInfo, ORCtrls, SysUtils;
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 | type
 | 
|---|
 | 10 |   TORImageIndexesPropertyEditor = class(TPropertyEditor)
 | 
|---|
 | 11 |   public
 | 
|---|
 | 12 |     procedure Modified;
 | 
|---|
 | 13 |     function GetAttributes: TPropertyAttributes; override;
 | 
|---|
 | 14 |     procedure GetProperties(Proc: TGetPropProc); override;
 | 
|---|
 | 15 |     function GetValue: string; override;
 | 
|---|
 | 16 |     procedure SetValue(const Value: string); override;
 | 
|---|
 | 17 |   end;
 | 
|---|
 | 18 | 
 | 
|---|
 | 19 |   TORImageIndexesElementPropertyEditor = class(TNestedProperty)
 | 
|---|
 | 20 |   private
 | 
|---|
 | 21 |     FElement: Integer;
 | 
|---|
 | 22 |     FParent: TPropertyEditor;
 | 
|---|
 | 23 |   protected
 | 
|---|
 | 24 |     constructor Create(Parent: TPropertyEditor; AElement: Integer); reintroduce;
 | 
|---|
 | 25 |     function ParentImgIdx(Idx: integer): TORCBImageIndexes;
 | 
|---|
 | 26 |   public
 | 
|---|
 | 27 |     function GetAttributes: TPropertyAttributes; override;
 | 
|---|
 | 28 |     function GetName: string; override;
 | 
|---|
 | 29 |     function GetValue: string; override;
 | 
|---|
 | 30 |     procedure SetValue(const Value: string); override;
 | 
|---|
 | 31 |   end;
 | 
|---|
 | 32 | 
 | 
|---|
 | 33 | procedure Register;
 | 
|---|
 | 34 | 
 | 
|---|
 | 35 | implementation
 | 
|---|
 | 36 |   
 | 
|---|
 | 37 | { TORImageIndexesPropertyEditor }
 | 
|---|
 | 38 | 
 | 
|---|
 | 39 | type
 | 
|---|
 | 40 |   TExposedORCheckBox = class(TORCheckBox)
 | 
|---|
 | 41 |   public
 | 
|---|
 | 42 |     property CustomImages;
 | 
|---|
 | 43 |   end;
 | 
|---|
 | 44 | 
 | 
|---|
 | 45 | procedure TORImageIndexesPropertyEditor.Modified;
 | 
|---|
 | 46 | begin
 | 
|---|
 | 47 |   inherited Modified;
 | 
|---|
 | 48 | end;
 | 
|---|
 | 49 | 
 | 
|---|
 | 50 | function TORImageIndexesPropertyEditor.GetAttributes: TPropertyAttributes;
 | 
|---|
 | 51 | begin
 | 
|---|
 | 52 |   Result := [paMultiSelect, paSubProperties, paRevertable];
 | 
|---|
 | 53 | end;
 | 
|---|
 | 54 | 
 | 
|---|
 | 55 | procedure TORImageIndexesPropertyEditor.GetProperties(Proc: TGetPropProc);
 | 
|---|
 | 56 | var
 | 
|---|
 | 57 |   i: Integer;
 | 
|---|
 | 58 | 
 | 
|---|
 | 59 | begin
 | 
|---|
 | 60 |   for i := 0 to 5 do
 | 
|---|
 | 61 |     Proc(TORImageIndexesElementPropertyEditor.Create(Self, i));
 | 
|---|
 | 62 | end;
 | 
|---|
 | 63 | 
 | 
|---|
 | 64 | function TORImageIndexesPropertyEditor.GetValue: string;
 | 
|---|
 | 65 | begin
 | 
|---|
 | 66 |   Result := GetStrValue;
 | 
|---|
 | 67 | end;
 | 
|---|
 | 68 | 
 | 
|---|
 | 69 | procedure TORImageIndexesPropertyEditor.SetValue(const Value: string);
 | 
|---|
 | 70 | begin
 | 
|---|
 | 71 |   SetStrValue(Value);
 | 
|---|
 | 72 | end;
 | 
|---|
 | 73 | 
 | 
|---|
 | 74 | { TORImageIndexesElementPropertyEditor }
 | 
|---|
 | 75 | 
 | 
|---|
 | 76 | constructor TORImageIndexesElementPropertyEditor.Create(Parent: TPropertyEditor; AElement: Integer);
 | 
|---|
 | 77 | begin
 | 
|---|
 | 78 |   inherited Create(Parent);
 | 
|---|
 | 79 |   FElement := AElement;
 | 
|---|
 | 80 |   FParent := Parent;
 | 
|---|
 | 81 | end;
 | 
|---|
 | 82 | 
 | 
|---|
 | 83 | function TORImageIndexesElementPropertyEditor.ParentImgIdx(Idx: integer): TORCBImageIndexes;
 | 
|---|
 | 84 | begin
 | 
|---|
 | 85 |   if(FParent.GetComponent(Idx) is TORCheckBox) then
 | 
|---|
 | 86 |     Result := TExposedORCheckBox(FParent.GetComponent(Idx)).CustomImages
 | 
|---|
 | 87 |   else
 | 
|---|
 | 88 | {  if(FParent.GetComponent(Idx) is TORListView) then
 | 
|---|
 | 89 |     Result := (FParent.GetComponent(Idx) as TORGEListView).FCustomImages
 | 
|---|
 | 90 |   else}
 | 
|---|
 | 91 |     Result := nil;
 | 
|---|
 | 92 | end;
 | 
|---|
 | 93 | 
 | 
|---|
 | 94 | function TORImageIndexesElementPropertyEditor.GetAttributes: TPropertyAttributes;
 | 
|---|
 | 95 | begin
 | 
|---|
 | 96 |   Result := [paMultiSelect, paRevertable];
 | 
|---|
 | 97 | end;
 | 
|---|
 | 98 | 
 | 
|---|
 | 99 | function TORImageIndexesElementPropertyEditor.GetName: string;
 | 
|---|
 | 100 | begin
 | 
|---|
 | 101 |   case FElement of
 | 
|---|
 | 102 |     0: Result := 'CheckedEnabledIndex';
 | 
|---|
 | 103 |     1: Result := 'GrayedEnabledIndex';
 | 
|---|
 | 104 |     2: Result := 'UncheckedEnabledIndex';
 | 
|---|
 | 105 |     3: Result := 'CheckedDisabledIndex';
 | 
|---|
 | 106 |     4: Result := 'GrayedDisabledIndex';
 | 
|---|
 | 107 |     5: Result := 'UncheckedDisabledIndex';
 | 
|---|
 | 108 |   end;
 | 
|---|
 | 109 | end;
 | 
|---|
 | 110 | 
 | 
|---|
 | 111 | function TORImageIndexesElementPropertyEditor.GetValue: string;
 | 
|---|
 | 112 | var
 | 
|---|
 | 113 |   i :integer;
 | 
|---|
 | 114 | 
 | 
|---|
 | 115 | begin
 | 
|---|
 | 116 |   for i := 0 to PropCount-1 do
 | 
|---|
 | 117 |   begin
 | 
|---|
 | 118 |     with ParentImgIdx(i) do
 | 
|---|
 | 119 |     case FElement of
 | 
|---|
 | 120 |       0: Result := IntToStr(CheckedEnabledIndex);
 | 
|---|
 | 121 |       1: Result := IntToStr(GrayedEnabledIndex);
 | 
|---|
 | 122 |       2: Result := IntToStr(UncheckedEnabledIndex);
 | 
|---|
 | 123 |       3: Result := IntToStr(CheckedDisabledIndex);
 | 
|---|
 | 124 |       4: Result := IntToStr(GrayedDisabledIndex);
 | 
|---|
 | 125 |       5: Result := IntToStr(UncheckedDisabledIndex);
 | 
|---|
 | 126 |     end;
 | 
|---|
 | 127 |   end;
 | 
|---|
 | 128 | end;
 | 
|---|
 | 129 | 
 | 
|---|
 | 130 | procedure TORImageIndexesElementPropertyEditor.SetValue(const Value: string);
 | 
|---|
 | 131 | var
 | 
|---|
 | 132 |   v, i: integer;
 | 
|---|
 | 133 | 
 | 
|---|
 | 134 | begin
 | 
|---|
 | 135 |   v := StrToIntDef(Value,-1);
 | 
|---|
 | 136 |   for i := 0 to PropCount-1 do
 | 
|---|
 | 137 |   begin
 | 
|---|
 | 138 |     with ParentImgIdx(i) do
 | 
|---|
 | 139 |     case FElement of
 | 
|---|
 | 140 |       0: CheckedEnabledIndex := v;
 | 
|---|
 | 141 |       1: GrayedEnabledIndex := v;
 | 
|---|
 | 142 |       2: UncheckedEnabledIndex := v;
 | 
|---|
 | 143 |       3: CheckedDisabledIndex := v;
 | 
|---|
 | 144 |       4: GrayedDisabledIndex := v;
 | 
|---|
 | 145 |       5: UncheckedDisabledIndex := v;
 | 
|---|
 | 146 |     end;
 | 
|---|
 | 147 |   end;
 | 
|---|
 | 148 |   (FParent as TORImageIndexesPropertyEditor).Modified;
 | 
|---|
 | 149 | end;
 | 
|---|
 | 150 | 
 | 
|---|
 | 151 | procedure Register;
 | 
|---|
 | 152 | { used by Delphi to put components on the Palette }
 | 
|---|
 | 153 | begin
 | 
|---|
 | 154 |   RegisterComponents('CPRS',
 | 
|---|
 | 155 |     [TORStaticText, TORListBox, TORComboBox, TORAutoPanel, TOROffsetLabel, TORAlignEdit,
 | 
|---|
 | 156 |     TORAlignButton, TORAlignSpeedButton, TORTreeView, TORCheckBox, TORListView,
 | 
|---|
 | 157 |     TKeyClickPanel, TKeyClickRadioGroup, TCaptionListBox, TCaptionCheckListBox,
 | 
|---|
 | 158 |     TCaptionMemo, TCaptionEdit, TCaptionTreeView, TCaptionComboBox,
 | 
|---|
 | 159 |     TCaptionListView, TCaptionStringGrid, TCaptionRichEdit{, TORAlignBitBtn, TORCalendar}]);
 | 
|---|
 | 160 |   RegisterPropertyEditor( TypeInfo(string), TORCheckBox, 'ImageIndexes',
 | 
|---|
 | 161 |                           TORImageIndexesPropertyEditor);
 | 
|---|
 | 162 | end;
 | 
|---|
 | 163 | 
 | 
|---|
 | 164 | end.
 | 
|---|
 | 165 | 
 | 
|---|