Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: 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 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
11-1109718996
gent
2005-03-02 02:16
2005.10.30
Ошибка в KOL / TBitmap.SetHandle.


8-1113987578
Grief
2005-04-20 12:59
2005.10.30
Превращение bmp в avi.


1-1128527551
Snape
2005-10-05 19:52
2005.10.30
Меню в заголовке окна


14-1128883800
Rampart
2005-10-09 22:50
2005.10.30
Помощь нужна


14-1128009414
Kerk
2005-09-29 19:56
2005.10.30
9 признаков американца (наверно баян)