Как я могу создать объект Delphi из ссылки класса и гарантировать казнь конструктора?

Вам не нужен javascript или jquery для этого. Если вы видите, осмотрите элемент [я использовал примеры из lightslider на github], они добавят класс active к первому элементу текущего представления.

Таким образом, вы можете просто добавить CSS, чтобы достичь того, что вы хотите.

li.item-c.lslide.active + li { // your highlight css properties }

20
задан mjn 26 April 2009 в 15:40
поделиться

3 ответа

Используйте это:

type
  TMyClass = class(TObject)
    MyStrings: TStrings;
    constructor Create; virtual;
  end;
  TMyClassClass = class of TMyClass; // <- add this definition

constructor TMyClass.Create;
begin
   MyStrings := TStringList.Create;
end;

procedure Test;
var
  Clazz: TMyClassClass; // <- change TClass to TMyClassClass
  Instance: TObject;
begin
   Clazz := TMyClass; // <- you can use TMyClass or any of its child classes. 
   Instance := Clazz.Create; // <- virtual constructor will be used
end;

В качестве альтернативы, вы можете использовать приведение типов к TMyClass (вместо «class of TMyClass»).

26
ответ дан 29 November 2019 в 22:44
поделиться

Пожалуйста, проверьте, является ли переопределение AfterConstruction опцией.

11
ответ дан 29 November 2019 в 22:44
поделиться

Ваш код немного изменено:

type
  TMyObject = class(TObject)
    MyStrings: TStrings;
    constructor Create; virtual;
  end;
  TMyClass = class of TMyObject;

constructor TMyObject.Create;
begin
  inherited Create;
  MyStrings := TStringList.Create;
end;

procedure Test; 
var
  C: TMyClass;
  Instance: TObject;
begin
   C := TMyObject;
   Instance := C.Create;
end;
7
ответ дан 29 November 2019 в 22:44
поделиться
Другие вопросы по тегам:

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