Подскажите, плз, как скриптом динамически создать форму, а на ней Olecontainer и управлять им?

отредактировано 07:30 Раздел: FastScript
Мне необходимо создать форму, на которой расположен OleContainer, в котором открывается файл Excel. Помогите, пожалуйста, голова скоро лопнет.

Комментарии

  • отредактировано February 2012
    Для скриптового создания OleContainer, придётся внедрить его в скрипт. Как это сделать ?
    type
      TFunctions = class(TfsRTTIModule)
      private
        function CallMethod(Instance: TObject; ClassType: TClass;const MethodName: String; Caller: TfsMethodHelper): Variant;
        function GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant;
        procedure SetProp(Instance: TObject; ClassType: TClass; const PropName: String; Value: Variant);
      public
        constructor Create(AScript: TfsScript); override;
      end;
    
    
    { TFunctions }
    
    constructor TFunctions.Create(AScript: TfsScript);
    begin
      inherited Create(AScript);
      with AScript do
      begin
        with AddClass(TOleContainer, 'TCustomControl') do begin
          AddMethod('procedure LoadFromFile(const FileName: string);', CallMethod);
        end;
    end;
    
    function TFunctions.CallMethod(Instance: TObject; ClassType: TClass;
      const MethodName: String; Caller: TfsMethodHelper): Variant;
    begin
      Result := 0;
      if ClassType = TOleContainer then begin
        if MethodName = 'LOADFROMFILE' then TOleContainer(Instance).LoadFromFile(Caller[0]);
      end
    end;
    
    
    function TFunctions.GetProp(Instance: TObject; ClassType: TClass;
      const PropName: String): Variant;
    begin
      Result := 0;
    end;
    
    procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass;
      const PropName: String; Value: Variant);
    begin
    end;
    
    initialization
      fsRTTIModules.Add(TFunctions);
    
    finalization
      if fsRTTIModules <> nil then
        fsRTTIModules.Remove(TFunctions);
    
    end.
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.