Показ дополнительных свойств потомка TFrame на инспекторе объектов

Почему бы вам просто не взять разницу между двумя результатами функции Now() рабочего листа и умножить ее на 86400 без какого-либо форматирования?

Now() дает дату-время сейчас, где единицы дни. Поскольку в течение одного дня есть 86400 секунд, умножение разницы на 86400 даст вам количество секунд.

11
задан Serguzest 3 December 2012 в 13:36
поделиться

2 ответа

Какой пользовательский класс модуля Вы регистрируете для своего кадра? Какую версию Delphi Вы используете?

Из моих экспериментов с Delphi 2007 пользовательским классом модуля, который, кажется, работает, является TFrameModule. Этот класс содержится в delphivclide100.bpl. С тех пор нет никакого соответствующего delphivclide.dcp, необходимо загрузить его вручную:

unit FrameTestReg;

interface

procedure Register;

implementation

uses
  Windows, DesignIntf,
  FrameTest;

procedure Register;
var
  delphivclide: THandle;
  TFrameModule: TCustomModuleClass;
begin
  delphivclide := GetModuleHandle('delphivclide100.bpl');
  if delphivclide <> 0 then
  begin
    TFrameModule := GetProcAddress(delphivclide, '@Vclformcontainer@TFrameModule@');
    if Assigned(TFrameModule) then
      RegisterCustomModule(TTestFrame, TFrameModule);
  end;
end;

end.

Моя единица FrameTest очень проста, она не имеет никакого FrameTest.dfm, только объявление нового потомка TFrame:

unit FrameTest;

interface

uses
  Forms;

type
  TTestFrame = class(TFrame)
  private
    FHello: string;
  published
    property Hello: string read FHello write FHello;
  end;

implementation

end.

Используя класс TFrameModule, все, кажется, хорошо работает до сих пор. Я могу создать нового потомка TTestFrame, чтобы включать в проект и отредактировать его опубликованные свойства в Инспекторе объектов, поместить экземпляры этого нового потомка на форме в IDE, отредактировать их новые опубликованные свойства в Инспекторе объектов, записать обработчики событий для их дочерних компонентов и т.д. В .dfm ресурсе I видят ожидаемую "встроенную" директиву для экземпляров. Я не встретился ни с какой проблемой с ним до сих пор поэтому, возможно, это - решение.

4
ответ дан 3 December 2019 в 11:38
поделиться

Нет, я не думаю, что это полностью возможно.

То, что я обычно делаю, когда у меня есть подобные потребности, должно просто установить потомка кадра как компонент его собственного права. Но да, тот способ, которым Вы теряете большое типичное поведение кадра (особенно во время проектирования), например, Вы больше не можете управлять субкомпонентами непосредственно, и изменения в кадре автоматически больше не распространяют к формам, которые используют его во время проектирования - необходимо перекомпилировать пакет во время выполнения, который содержит кадр сначала.

С другой стороны с перспективы ООП это не слишком плохо. Это на самом деле осуществляет понятие сокрытия реализации. Можно все еще выставить отдельные свойства и функциональность субкомпонентов через новые свойства и методы на самом кадре.

0
ответ дан 3 December 2019 в 11:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: