Конференция "Компоненты" » Создание свойств-множеств в компоненте [D7, WinXP]
 
  • DrAndriy (19.08.10 14:59) [0]
    Добрый день!

    Создаю свойства-множества в моем компоненте по такой схеме:

    Код:

    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; // TMySetTypeSecond? TMySetTypeThird?

    type
    TMyComponent = class(TComponent)
    private
    { Private declarations }
    FMyEnum: TMyEnumType;
    FMyOptions: TMySetType;
    protected
    { Protected declarations }
    public
    { Public declarations }
    published
    { Published declarations }
    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 показывали нужные мне типы множеств?

    Спасибо
  • DrAndriy (19.08.10 15:17) [1]
    уточнение вопроса:

    С TMySetType все понятно, создается выбор из множества первого типа (TMySetTypeFirst) от TMyEnumType = eFirst, а как динамично подключать (или переключать) к TMySetType множества TMySetTypeSecond (если TMyEnumType = eSecond) и TMySetTypeThird (если TMyEnumType = eThird), чтобы MyOptions показывали нужные мне типы множеств (TMySetTypeFirst или TMySetTypeSecond или TMySetTypeThird)?
  • DimaBr © (19.08.10 15:27) [2]
    Вам нужно ещё одно свойство, которое будет множеством из трёх типов ?
  • DrAndriy (19.08.10 15:36) [3]
    Мне нужно чтобы при выборе eFirst, eSecond, eThird в MyEnumProp я мог увидеть или получить доступ в MyOptions к одному из трех множеств TMySetTypeFirst или TMySetTypeSecond или TMySetTypeThird. спасибо
  • DimaBr © (19.08.10 15:51) [4]
    А как вы себе это представляете программно. Какой тип должен быть у вашего свойства MyOptions ?
  • DrAndriy (19.08.10 15:57) [5]
    я поэтому и задал вопрос.
    как в таком варианте схемы открыть TMySetTypeSecond или TMySetTypeThird:

    1. переключать MyOptions для всех трех множеств?
    2. или создавать новые MyOptions для каждого множества  TMySetTypeFirst, TMySetTypeSecond или TMySetTypeThird?

    есть какие-то варианты, чтобы при включении одного из значений eFirst, eSecond, eThird активными были тогда MyOptions для TMySetTypeFirst или MyOptions для TMySetTypeSecond  или MyOptions для TMySetTypeThird?

    спасибо
  • DimaBr © (19.08.10 16:05) [6]
    Вы бы сначала определились с RunTime, а потом уже и про дизайнер поговорим.
    Визуализацию инспектора сделать не сложно, ViktorXP уже даже показал как, главное как вы будите обращаться с такому свойству в коде.
  • имя (19.08.10 16:05) [7]
    Удалено модератором
  • DrAndriy (19.08.10 17:03) [8]
    Да я благодарен ViktorXP за его ответ, это то чего я и хотел увидеть. теперь вы правы, как лучше с вашей точки зрения это сделать? спасибо
  • DrAndriy (19.08.10 17:20) [9]
    при компилировании проекта с этим тестируемым компонентом выдается ошибка: [DCC Fatal Error] Unit1.pas(7): F1026 File not found: 'DesignEditors.dcu',

    у меня проект на делфи 2010 как найти или включить DesignEditors.dcu. если можно подробный ответ. спасибо
  • DrAndriy (19.08.10 20:27) [10]
    В секцию 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?

    Спасибо.
 
Конференция "Компоненты" » Создание свойств-множеств в компоненте [D7, WinXP]
Есть новые Нет новых   [134466   +3][b:0][p:0.001]