Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

Свойство типа 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
14-1129023517
dr Tr0jan
2005-10-11 13:38
2005.10.30
Помогите вспомнить название и исполнителя композиции.


3-1126851290
ZSergey
2005-09-16 10:14
2005.10.30
Помогите настроить кодировку ...


3-1127150201
kilonet
2005-09-19 21:16
2005.10.30
Структура БД. Нужна помощь


14-1129089827
КаПиБаРа
2005-10-12 08:03
2005.10.30
Жизненая пила


14-1128676399
data
2005-10-07 13:13
2005.10.30
Кто может посоветывать хорошую книгу по работе с Red Hat 9?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский