Вниз
Скачать: CL | DM;

Свойство типа TStrings   Найти похожие ветки 

← →
Anonimus ©   (2004-12-27 15:12) [0]

Добрый день.
Пишу свой компонент. Появилась необходимость вставить туда свойство типа TStrings. Свойство должно быть published. Но при попытке редактировать его в Design Time получаю ошибку. Естесственно, ведь экземпляр класса еще не создан.

 private
   { Private declarations }
   fLngFileName: string;
   fOtherStrings: TStrings;
   procedure ExtractComponents;
   procedure SetLng(FName: string);
 protected
   { Protected declarations }
 public
   { Public declarations }
 published
   { Published declarations }
   property LngFileName: string read fLngFileName write SetLng;
   property OtherStrings: TStrings read fOtherStrings;
 end;

Пожалуйста, ткните носом, как нужно делать, чтобы в результате получить какое-то подобие Lines в TMemo


← →
prosoft   (2004-12-27 15:19) [1]

Свойство в свою очередь является ссылкой на экземпляр. Так что его как бы тоже создать нужно. ;)
Например так:

TMyComponent = class(TComponent)
.....
public
  { Public declarations }
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;

published
  { Published declarations }
  property LngFileName: string read fLngFileName write SetLng;
  property OtherStrings: TStrings read fOtherStrings;
end;


constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
fOtherStrings := TStringList.Create;
end;

destructor TMyComponent.Destroy;
begin
fOtherStrings.Free;
inherited Destroy;
end;



← →
Anonimus ©   (2004-12-27 15:48) [2]

Я так понимаю Delphi в данной ситуации работает в качестве интерпритатора своего же кода, ну в некотором роде?
Сорри, яснее выразиться не сумел :(


← →
Юрий Зотов ©   (2004-12-27 16:47) [3]

> Anonimus ©   (27.12.04 15:48) [2]

Нет, не интерпретатора, там более сложный механизм (больше похоже на механизм плагинов).

Еще - свойство OtherStrings: TStrings объявлено как "только для чтения". В таком случае зачем выносить его в Инспектор Объектов?


← →
icWasya ©   (2005-01-11 11:27) [4]

>как нужно делать, чтобы в результате получить какое-то подобие Lines в TMemo
кроме [1] добавить


private
procedure  setOtherStrings(value :TStrings);
....
property OtherStrings: TStrings read fOtherStrings write setOtherStrings;

....
procedure  TMyComponent.setOtherStrings(value :TStrings);
begin
 fOtherStrings.Assign(value);
end;



← →
Anatoly Podgoretsky ©   (2005-01-15 14:23) [5]

Anonimus ©   (27.12.04 15:12)  
Естесственно, ведь экземпляр класса еще не создан.

Экземпляр класса уже создан, иначе бы ты его не увидел в инспекторе объектов.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
2-1128532929
747
2005-10-05 21:22
2005.10.30
Текстовый квест - нужна помощь.


1-1128329996
Sergey_R
2005-10-03 12:59
2005.10.30
Кнопки в стиле WMP


14-1128730403
NoName__1
2005-10-08 04:13
2005.10.30
HDD


14-1128521342
Begin
2005-10-05 18:09
2005.10.30
Блок - схема по тексту процедуры...


3-1126854251
Андрей Жук
2005-09-16 11:04
2005.10.30
Народ! Подскажите мне нормальный метод построения шахматок




   Наверх