-
Добрый день! Создаю свойства-множества в моем компоненте по такой схеме: Код: unit MyComponent;
interface
uses
SysUtils, Types, Classes;
type
TMyEnumType = (eFirst, eSecond, eThird);
TMySetTypeFirst = (poFirst1, poSecond1, poThird1);
TMySetTypeSecond = (poFirst2, poSecond2, poThird2);
TMySetTypeThird = (poFirst3, poSecond3, poThird3);
TMySetType = set of TMySetTypeFirst;
type
TMyComponent = class(TComponent)
private
FMyEnum: TMyEnumType;
FMyOptions: TMySetType;
protected
public
published
property MyEnumProp: TMyEnumType read FMyEnum write FMyEnum;
property MyOptions: TMySetType read FMyOptions write FMyOptions;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMyComponent])
end;
end. С TMySetType все понятно, создается выбор из множества первого типа (TMySetTypeFirst) от TMyEnumType = eFirst, а как динамично подключать (или переключать) к TMySetType множества TMySetTypeSecond и TMySetTypeThird, чтобы MyOptions показывали нужные мне типы множеств? Спасибо
-
уточнение вопроса:
С TMySetType все понятно, создается выбор из множества первого типа (TMySetTypeFirst) от TMyEnumType = eFirst, а как динамично подключать (или переключать) к TMySetType множества TMySetTypeSecond (если TMyEnumType = eSecond) и TMySetTypeThird (если TMyEnumType = eThird), чтобы MyOptions показывали нужные мне типы множеств (TMySetTypeFirst или TMySetTypeSecond или TMySetTypeThird)?
-
Вам нужно ещё одно свойство, которое будет множеством из трёх типов ?
-
Мне нужно чтобы при выборе eFirst, eSecond, eThird в MyEnumProp я мог увидеть или получить доступ в MyOptions к одному из трех множеств TMySetTypeFirst или TMySetTypeSecond или TMySetTypeThird. спасибо
-
А как вы себе это представляете программно. Какой тип должен быть у вашего свойства MyOptions ?
-
я поэтому и задал вопрос. как в таком варианте схемы открыть TMySetTypeSecond или TMySetTypeThird:
1. переключать MyOptions для всех трех множеств? 2. или создавать новые MyOptions для каждого множества TMySetTypeFirst, TMySetTypeSecond или TMySetTypeThird?
есть какие-то варианты, чтобы при включении одного из значений eFirst, eSecond, eThird активными были тогда MyOptions для TMySetTypeFirst или MyOptions для TMySetTypeSecond или MyOptions для TMySetTypeThird?
спасибо
-
Вы бы сначала определились с RunTime, а потом уже и про дизайнер поговорим. Визуализацию инспектора сделать не сложно, ViktorXP уже даже показал как, главное как вы будите обращаться с такому свойству в коде.
-
Удалено модератором
-
Да я благодарен ViktorXP за его ответ, это то чего я и хотел увидеть. теперь вы правы, как лучше с вашей точки зрения это сделать? спасибо
-
при компилировании проекта с этим тестируемым компонентом выдается ошибка: [DCC Fatal Error] Unit1.pas(7): F1026 File not found: 'DesignEditors.dcu',
у меня проект на делфи 2010 как найти или включить DesignEditors.dcu. если можно подробный ответ. спасибо
-
В секцию Requires компонента я включил и скомпилировал уже ранее designide.dcp; прописал путь к папке ToolsAPI, где находятся искомые файлы (DesignIntf.pas и DesignEditors.pas); перекомпилировал и файлы DesignIntf.dcu и DesignEditors.dcu появились в папке ToolsAPI, но теперь при компилировании нового проекта с моим компонентом выдается ошибка:
[DCC Fatal Error] ToolsAPI.pas(17): F1026 File not found: 'DockForm.dcu'
что еще надо внести в секцию Requires, чтобы скомпилировать все модули в папке ToolsAPI?
Спасибо.
|